Identifying an item based on data inferred from information about the item

ABSTRACT

There are provided methods and systems to identify an item based on data inferred from information about the item. Information is received that is descriptive of an item capable of being listed on an information storage and retrieval platform. The information is associated with an aspect-value pair, which is an aspect of the item and a value of the aspect and is inferred from the information. An expression of an interest of a user in an additional item is received. The expression is associated with the aspect-value pair. In response to the associating of the expression with the aspect-value pair, the item is identified as the additional item.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.11/703,511, filed Feb. 7, 2007, and which issued as U.S. Pat. No.7,739,225 on Jun. 15, 2010, entitled “METHOD AND SYSTEM TO ANALYZE RULESBASED ON ASPECT-VALUE COVERAGE,” which claims the benefits of U.S.Provisional Application No. 60/743,256, filed Feb. 9, 2006, entitled“METHODS AND SYSTEMS TO GENERATE A USER INTERFACE,” and U.S. ProvisionalApplication No. 60/781,521, filed Mar. 10, 2006, entitled “METHODS ANDSYSTEMS TO GENERATE, ANALYZE AND PUBLISH RULES,” and U.S. ProvisionalApplication No. 60/745,347, filed Apr. 21, 2006, entitled “METHODS ANDSYSTEMS TO COMMUNICATE INFORMATION,” all of which are incorporatedherein by reference.

TECHNICAL FIELD

An embodiment relates generally to the technical field of datacommunications and, in one example embodiment, to methods and systems toanalyze rules based on aspect-value coverage.

BACKGROUND

A user searching an information resource (e.g., database) may encounterchallenges. One such challenge may be that a search mechanism (e.g., asearch engine) that is utilized to search the information resource mayreturn search results that are of little interest to the user. Forexample, the search mechanism may respond to a query from the user withsearch results that contains data items that cover a spectrum wider thanthe interests of the user. The user may experiment by adding additionalconstraints (e.g., keywords, categories, etc.) to the query to narrowthe number of data items in the search results; however, suchexperimentation may be time consuming and frustrate the user. To thisend, the information contained in the data items and the queries enteredby a user to search for the data items may be processed with rules thatenable the search mechanism to return search results that are morerelevant to the user. For example, the rules may be authored to ensurethat a data item entered by a seller and including a text description“BRN shoes” is identified responsive to a query that is entered by abuyer and that includes the keywords “brown shoes.” Typically such rulesmay be authored by a category manager who is aware of the language usedin a particular subject area. Nevertheless, in some instances, thecategory manager may find the authoring of such rules to be difficultand time consuming.

BRIEF DESCRIPTION OF THE DRAWINGS

An embodiment is illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which like references indicatesimilar elements and in which:

FIG. 1 is a network diagram depicting a system, according to one exampleembodiment, having a client-server architecture;

FIG. 2 is a block diagram illustrating modules and engines, according toan embodiment;

FIG. 3 is a block diagram illustrating authoring modules, according toan embodiment;

FIG. 4 is a block diagram illustrating an information storage andretrieval platform, according to an embodiment;

FIG. 5 is a diagram illustrating an example domain structure, accordingto one embodiment;

FIG. 6 is a table illustrating sell-side data and buy-side data,according to one embodiment;

FIG. 7 is a diagram illustrating a canonical matching concept, accordingto an embodiment;

FIG. 8A is a block diagram illustrating databases, according to anembodiment;

FIG. 8B is a block diagram illustrating additional databases, accordingto an embodiment;

FIG. 9A is a block diagram illustrating classification information,according to an embodiment;

FIG. 9B is a block diagram illustrating production classificationinformation, according to an embodiment;

FIG. 9C is a block diagram illustrating preview classificationinformation, according to an embodiment;

FIG. 10 is a diagram illustrating rules, according to an embodiment;

FIG. 11 is a block diagram illustrating data item information, accordingto an embodiment;

FIG. 12 is a block diagram illustrating a search index engine, accordingto an embodiment;

FIG. 13A is a block diagram illustrating a data item search information,according to an embodiment;

FIG. 13B is a block diagram illustrating a sample data item searchinformation, according to an embodiment;

FIG. 14 is a block diagram illustrating query information, according toan embodiment;

FIG. 15 is a block diagram illustrating data item criteria, according toan embodiment;

FIG. 16 is a block diagram illustrating preview publish information,according to an embodiment;

FIG. 17 is a block diagram illustrating most popular query information,according to an embodiment;

FIG. 18 is a block diagram illustrating histogram information, accordingto an embodiment;

FIG. 19 is a flow chart illustrating a method to generate rules toidentify data items, according to an embodiment;

FIG. 20 is a flowchart illustrating a method, according to anembodiment, to represent percentage of coverage for a subset of mostpopular queries;

FIG. 21 is a flowchart illustrating a method, according to anembodiment, to apply aspect rules to most popular queries;

FIG. 22 is a flowchart illustrating a method, according to anembodiment, to determine percentage coverage for most popular queries;

FIG. 23 is a flowchart illustrating a method, according to anembodiment, to represent percentage coverage associated with a domain;

FIG. 24 is a flowchart illustrating a method, according to anembodiment, to apply domain rules to data items;

FIG. 25 is a flowchart illustrating a method, according to anembodiment, to determine domains;

FIG. 26 is a flowchart illustrating a method, according to anembodiment, to represent percentage coverage for aspects;

FIG. 27 is a flowchart illustrating a method, according to anembodiment, to apply aspect rules to data items;

FIG. 28 is a flowchart illustrating a method, according to anembodiment, to determine percentage coverage for aspects;

FIG. 29 is a flowchart illustrating a method, according to anembodiment, to represent percentage coverage for aspect-value pairs;

FIG. 30 is a flowchart illustrating a method, according to an embodimentto determine percentage coverage for aspect-value pairs;

FIGS. 31-38 are diagrams illustrating user interfaces, according to anembodiment;

FIG. 39 is a block diagram illustrating marketplace applications,according to an embodiment;

FIG. 40 is a block diagram illustrating marketplace information,according to an embodiment; and

FIG. 41 is a block diagram of a machine, according to an exampleembodiment, including instructions to perform any one or more of themethodologies described herein.

DETAILED DESCRIPTION

Methods and systems to analyze rules based on aspect-value coverage aredescribed. In the following description, for purposes of explanation,numerous specific details are set forth in order to provide a thoroughunderstanding of the present disclosure. It will be evident, however, toone skilled in the art that the subject matter of the present disclosuremay be practiced without these specific details.

Definitions:

Data item: data describing an item or service that may be stored in adatabase and searched with a query.

Domain: an organization of like data items. A domain may include likedata items or other like domain(s).

Product domain: a type of domain to organize data items of a particularproduct type (e.g., Women's Shoes)

Aisle domain: a type of domain to organize one or more product domains(e.g., Women's Clothing)

Department domain: a domain to organize one or more aisle or productdomains (e.g., Apparel & Accessories)

Aspect: an aspect is derived from specific instances of a type of dataitem (e.g., shoes is a type of data item) and may be used tocharacterize the type of data item (e.g., COLOR, BRAND, STYLE, etc. arederived from a data item such as shoes and may be used to characterizeshoes).

Value: a value is a specific instance of an aspect (e.g., red, green,blue, are specific instances of the aspect COLOR) that may be used tocharacterize a data item (e.g., shoes).

Aspect-value: a specific aspect and value (e.g., COLOR=red)

According to a first feature of the present disclosure, a system may beused to generate suggestions for values (e.g., aspect values) that maybe included in rules that may be generated to classify data items andprocess queries to identify data items. A rule may be authored with oneor more authoring modules and may be an “if-then” statement that mayinclude a condition clause and a predicate clause. The condition clausemay include a statement to evaluate the contents of a data itemresulting in a TRUE or FALSE result. The predicate clause may include anaspect-value pair that may be associated with or concatenated to theunstructured information (e.g., data item). For example, a rule may beapplied to a data item previously identified as describing shoes thatincludes the word “brown” in a description field. The rule may include acondition clause (e.g., trigger) that may be used to evaluate thedescription field for a color (e.g., if description contains “brn”) anda predicate clause which specifies an aspect-value pair (e.g.,COLOR=brown) that may be associated with or concatenated to the dataitem if the condition clause evaluates TRUE. The first feature of thepresent disclosure anticipates that an administrator or category managerthat is authoring such rules may benefit from a system that may be usedto automatically generate candidate values (e.g., aspect values). Such asystem may receive a request to suggest one or more candidateaspect-values based on aspect-values that may have already been definedby the category manager. For example, consider a “Rocks and Minerals”domain that includes an aspect “Metals.” The system may receive theaspect metal and the values gold, silver, platinum and a request togenerate candidate values. Responsive to receiving the request, thesystem may search one or more databases based on the received aspect togenerate candidate values (e.g., bronze, tin, etc.). In one embodiment,the category manager may accept or reject each of the candidate values,the accepted candidate values utilized as an aspect-value pair. Forexample, acceptance of a candidate value may result in generating anaspect-value pair that may be included as a predicate clause (e.g.,COLOR=bronze) in a rule that is generated. Finally, the rules may bepublished to an information storage and retrieval system that may applythe rules to data items to structure the data items (e.g., concatenateaspect-value pairs). For example, the rule may include the conditionclause “if title=brown” to evaluate the keywords in the title (e.g.,Nike Brown Shoes for Sale) of a data item. Responsive to a TRUEevaluation (e.g., finding the word “brown” in the title), the predicateclause may include an aspect-value pair (COLOR=brown) that isconcatenated to the data item. Further, the information storage andretrieval system may apply the same rules to queries that are receivedby the information storage and retrieval system. For example, the rule“if brown” may be utilized to evaluate the keywords in the query “brownshoes.” Responsive to a TRUE evaluation (e.g., finding the word “brown”in the query), the rule may include a predicate clause includes anaspect-value pair (COLOR=brown) that may be utilized to identify dataitems that contain the same aspect-value pair.

According to a second feature of the present disclosure, a categorymanager may analyze rules by utilizing a system to determine apercentage of coverage for each query in a set of most popular queries.The system may determine a percentage coverage by receiving samplequeries that have been entered by users to search a database on aninformation storage and retrieval platform. Each query may include astring of text that includes a keyword that may be compared with thekeywords in other queries to determine the subset of most popularqueries. For example, queries that include the keyword “iPod” may bedetermined the most popular query because no other keyword may be foundin as many queries. Next, the system may apply the rules to each of themost popular queries. If the condition clause of the rule includes akeyword that matches a keyword in the query then a match is registeredby incrementing a counter that corresponds to the query. Next, thesystem may determine a percentage of coverage for each of the mostpopular queries by dividing the quantity of rules registered in therespective counter by a total number of rules that are applied to therespective queries. Each percentage coverage corresponding to therespective most popular queries may be represented as an interfaceelement within an interface. Category managers may utilize a system todetermine percentage of coverage of most popular queries to analyzewhether the newly authored set of rules perform as anticipated.

According to a third feature of the present disclosure, a categorymanager may analyze rules by utilizing a system to determine apercentage of coverage for a domain. For example, a domain “shoes” mayinclude a set of domain rules that may be used to determine whether adata item is classified in the domain for “shoes.” For example, the setof domain rules may test a category that is entered by the author of thedata item and stored in the data item and, responsive to a match, maystructure the data item in the domain “shoes” (e.g., assign a domainvalue-pair “PRODUCT TYPE=shoes”). The system may determine a percentageof coverage for the domain rules associated with the domain “shoes” byreceiving a total quantity data items from a database that includes dataitems available for sale or auction on an information storage andretrieval platform. Next, the system may apply the domain rules to thetotal quantity of data items. If the condition clause of a domain ruleincludes a category that matches a category stored in the data item(e.g., listing) and a predicate clause of the domain rule includes thedomain-value pair “PRODUCT TYPE=“shoes”” then a match is registered byincrementing a counter associated with the product domain for “shoes.”Next, the system may determine a percentage of coverage for the domain“shoes” by dividing the quantity of data items registered in the counterby the total quantity of data items to which the domain rules wereapplied. The percentage coverage for the domain “shoes” may berepresented as an interface element within an interface. Categorymanagers may utilize the system to determine whether a newly authoredset of domain rules perform as anticipated.

According to a fourth feature of the present disclosure, a categorymanager may may analyze rules by utilizing a system to determine apercentage of coverage for an aspect in a domain. For example, theaspect COLOR may be used to describe data items (e.g., listings) ofshoes for auction or sale in the domain “shoes.” The system maydetermine a percentage of coverage for the aspect COLOR in the domain“shoes” by receiving a total quantity data items from a database thatincludes data items available for sale or auction on an informationstorage and retrieval platform. Next, the system may apply the aspectrules associated with the domain “shoes” to the total quantity of dataitems. If the condition clause of an aspect rule includes informationthat matches information stored in the listing and the predicate clauseof the aspect rule assigns an aspect-value pair that includes the aspectCOLOR (e.g., COLOR=red or COLOR=white, COLOR=blue, etc.) then a match isregistered by incrementing a counter corresponding to the aspect-valuepair in the domain “shoes.” Next, the system may determine a percentageof coverage for the aspect COLOR in the domain “shoes” by dividing aquantity of data items registered in the respective counters (e.g.,corresponding to values associated with the aspect COLOR) by the totalquantity of data items to which the rules were applied. The percentagecoverage for the aspect COLOR in the domain “shoes” may be representedas an interface element within an interface. Category managers mayutilize the system to determine whether a newly authored set of aspectrules perform as anticipated.

According to a fifth feature of the present disclosure, a categorymanager may analyze rules by utilizing a system to determine apercentage of coverage for an aspect-value pair in a domain. Forexample, an aspect-value pair (e.g., COLOR=red) may be used to describedata items (e.g., listings) of shoes for auction or sale in the domain“shoes.” The system may determine a percentage of coverage for theaspect-value pair (e.g., COLOR=red) in the domain “shoes” by receiving atotal quantity data items from a database that includes data itemsavailable for sale or auction on an information storage and retrievalplatform. Next, the system may apply aspect rules for the domain “shoes”to the total quantity of data items. If the condition clause of anaspect rule includes information that matches information stored in thelisting and the predicate clause assigns the aspect-value pair“COLOR=red” then a match is registered by incrementing a countercorresponding to the aspect-value pair “COLOR=red” in the domain shoes.Next, the system may determine a percentage of coverage for theaspect-value pair “COLOR=red” in the domain “shoes” by dividing thequantity of data items registered in the counter by the total quantityof data items to which the aspect rules were applied. A percentagecoverage may be generated for all values associated with an aspect(e.g., COLOR=red or COLOR=white, COLOR=blue, etc.). The percentagecoverage may be represented as an interface element within an interface.Category managers may utilize the system to determine whether a newlyauthored set of aspect rules perform as anticipated.

FIG. 1 is a network diagram depicting a system 10, according to oneexample embodiment, having a client-server architecture. A commerceplatform or commerce server, in the example form of an informationstorage and retrieval platform 12, provides server-side functionality,via a network 14 (e.g., the Internet) to one or more clients. FIG. 1illustrates, for example, a web client 16 (e.g., a browser, such as theInternet Explorer browser developed by Microsoft Corporation of Redmond,Washington State) executing on a client machine 20, a programmaticclient 18 executing on the client machine 22, and, a programmatic client18 in the form of authoring modules 25 executing on the client machine23.

Turning to the information storage and retrieval platform 12, anapplication program interface (API) server 24 and a web server 26 arecoupled to, and provide programmatic and web interfaces respectively to,one or more application servers 28. The application servers 28 host oneor more modules 30 (e.g., modules, applications, engines, etc.). Theapplication servers 28 are, in turn, shown to be coupled to one or moredatabase servers 34 that facilitate access to one or more databases 36.The modules 30 provide a number of information storage and retrievalfunctions and services to users that access the information storage andretrieval platform 12.

While the system 10 shown in FIG. 1 employs a client-serverarchitecture, the present disclosure is of course not limited to such anarchitecture, and could equally well find application in a distributed,or peer-to-peer, architecture system. The various modules 30 andauthoring modules 25 may also be implemented as standalone softwareprograms, which do not necessarily have networking capabilities.

The web client 16 may access the various modules 30 via the webinterface supported by the web server 26. Similarly, the programmaticclient 18 accesses the various services and functions provided by themodules 30 via the programmatic interface provided by the API server 24.The programmatic client 18 may, for example, be a seller application(e.g., the TurboLister application developed by eBay Inc., of San Jose,Calif.) to enable sellers to author and manage data items or listings onthe information storage and retrieval platform 12 in an off-line manner,and to perform batch-mode communications between the programmatic client18 and the information storage and retrieval platform 12. In addition,the programmatic client 18 may, as previously indicated, includeauthoring modules 25 that may be used to author, generate, analyze, andpublish domain rules and aspect rules that may be used in theinformation storage and retrieval platform 12 to structure data itemsand transform queries. The client machine 23 is further shown to becoupled to one or more databases 27.

FIG. 2 is a block diagram illustrating the modules 30, according to anembodiment. The modules 30 include a communication module 40, a listingmodule 74, processing modules 46, a string analyzer module 47, ascrubber module 50, and two sets (e.g., instantiations) of publishingmodules 42 (e.g., publishing modules 42 for the production environment,publishing modules 42 for the preview environment) and marketplaceapplications 44. Each set of publishing modules 42 includes aclassification service engine 48, a query engine 52, and a search indexengine 54. The publishing modules 42 may be utilized to publish newand/or existing rules to the production environment or the previewenvironment in the information storage and retrieval platform 12 therebyenabling the rules to be operative (e.g., applied to data items andqueries) in the respective environments.

In one embodiment, the information storage and retrieval platform 12 maybe embodied as a network-based marketplace (e.g., eBay, the WorldsOnline Marketplace developed by eBay Inc., of San Jose, Calif.) thatsupports the transaction of data items or listings (e.g., goods orservices) between sellers and buyers. For example, the informationstorage and retrieval platform 12 may receive information from sellersthat describe the data items that may subsequently be retrieved bypotential buyers or bidders. In such an embodiment the modules 30 mayinclude marketplace applications 44 may provide a number of marketplacefunctions and services to users that access the information storage andretrieval platform 12.

The preview environment enables a category manager to analyze the rulesand determine whether such rules perform as expected without impactingthe live operations in the production environment. For example, thepreview environment enables a most popular query analysis, a domaincoverage analysis, an aspect coverage analysis, and an aspect-value paircoverage analysis as described later in this document. After determiningthat rules perform as expected, the category manager may publish therules to production environment in the information storage and retrievalplatform 12.

The communication module 40 may receive a query from the client machine22, 20 which may include one or more constraints (e.g., keywords,categories, information specific to a type of data item, (e.g.,item-specific). The communication module 40 may interact with the queryengine 52 and the search index engine 54 to process the query. Thecommunication module 40 may receive aspect-value pairs that may beextracted from the query. Further, the communication module 40 mayconstruct a transformed query based on the aspect-value pairs extractedfrom the query and may communicate an interface (e.g., user interface)to the user at the client machines 22, 20.

The listing module 74 may receive information from a client machine 20or 22 and store the information as a data item in the database 36. Forexample, a seller may operate the client machine 20 or 22 to enter theinformation that is descriptive of the data item for the purpose ofoffering the data item for sale or auction on the information storageand retrieval platform 12.

The processing module 46 may receive classification information andmetadata information. The processing module 46 may publish theclassification information and metadata information to a productionenvironment or a preview environment. The processing module 46 maypublish to the production environment by publishing classificationinformation and metadata information to backend servers that may hostthe query engine 52, the search index engine 54, and the classificationservice engine 48. The processing module 46 may publish to a previewenvironment by publishing classification information and metadatainformation to a local backend server that may host the query engine 52,the search index engine 54, and the classification service engine 48.

The processing module 46 is further shown to include a data itemretrieval module 85 that may receive requests for data items from acategory manager operating the client machine 23. For example,responsive to receiving the request, the data item retrieval module 85may read the data items from the data item information 65 stored on thedatabase 36 and store the data items 65 as sample information 63 in thedatabase 27.

The processing module 46 is further shown to include a query retrievalmodule 93 that may receive requests for queries from a category manageroperating the client machine 23. For example, responsive to receivingthe request, the query retrieval module 93 may read the queries from thesample information 63 and communicate the queries to the client machine23.

The scrubber module 50 may receive item information that may be enteredby a client machine 22, 20 to create a data item. The scrubber module 50may utilize the services of the classification service engine 48 tostructure the item information in the data item (e.g., apply domain andaspect rules).

The string analyzer module 47 may receive a request from the clientmachine 23 to identify candidate values to associate with an aspect. Therequest may include the aspect and one or more values that have beenassociated to the aspect. The string analyzer module 47 may utilize theaspect (e.g., COLOR) to identify strings of text in a database thatincludes the aspect. The string analyzer module 47 relies on variousservices provided in the information storage and retrieval platform 12to identify and process the strings of text. For example, the stringanalyzer module 47 may utilize services that may expand the aspect to aderivative form of the aspect including a singular form (e.g., COLOR), aplural form (e.g., COLORS), synonymous form, an alternate word form(e.g., CHROMA, COLORING, TINT, etc.), a commonly misspelled form (e.g.,COLLOR, etc.) or an acronym form. In one embodiment the string analyzermodule 47 may identify the boundaries of a string of text based on theposition of the aspect and derivatives thereof in the string of text.For example, the string analyzer module 47 may identify the boundariesof the string of text based on a predetermined number of words to theleft and right of the aspect in the string of text. In one embodimentthe predetermined number of words may be a configurable value. After thestrings of text have been identified, the string analyzer module 47 mayrely on a service in the information storage and retrieval platform 12to remove stop words from the strings (e.g., the, and, if, etc.). Forexample, stop words may include prepositions and antecedents becausethey may not be considered candidate values. Next, the string analyzermodule 47 may remove the aspect values received in the request from thestring. Finally, the string analyzer module 47 returns the remainingcandidate values to the client machine 23.

The database utilized by the string analyzer module 47 may includequeries that have been entered by a user to the information storage andretrieval platform 12 and/or data items that have been entered by a userto the information storage and retrieval platform 12 and/ordictionaries, and/or thesauruses. The string analyzer module 47 mayanalyze the strings of text to identify candidate values to associatewith the aspect.

The classification service engine 48 may be used to apply domain rulesand aspect rules to data items. The classification service engine 48 mayapply domain rules to identify one or more domain-value pairs (e.g.,PRODUCT TYPE=Women's Shoes) that may be associated with the data item.The classification service engine 48 may further apply the aspect rulesto identify aspect-value pairs (Brand=Anne Klein) that may be associatedwith the data item. The classification service engine 48 may apply thedomain and aspect rules to data items or listings as they are added tothe information storage and retrieval platform 12, or responsive to thepublication of new rules (e.g., domain rules, aspect rules).

The classification service engine 48 may process data items receivedfrom the client machines 20, 22. For example, the scrubber module 50 mayuse the services of the classification service engine 48, as previouslydescribed, to apply domain rules and aspect rules to the data item. Theclassification service engine 48 may further store the data item, withthe associated domain-value pairs and aspect-value pairs in a database36 as item search information. Further, the classification serviceengine 48 pushes or publishes item search information over a bus in realtime to the search index engine 54. Further, the classification serviceengine 48, may execute in the preview environment to enable analysis ofnewly authored rules before publication of the rules to the productionenvironment. Further, the classification service engine 48 may maintainhistogram information in the form of data item counters as the domainand aspect rules are applied to the data items. For example, theclassification service engine 48 may increment a data item counterresponsive to a condition a clause in a domain or aspect rule evaluatingTRUE. The histogram information may be communicated to the clientmachine 20 that may utilize the histogram information to determinepercentage coverage for most popular queries, domains, aspects, andaspect-value pairs.

The query engine 52 includes an aspect extractor module 58,classification information 49, metadata service module 60, and metadatainformation 62. In the production environment, the aspect extractormodule 58 may receive a query from the communication module 40 and applyaspect rules to extract aspect-value pairs from the query. Further, inthe production environment, the aspect extractor module 58 maycommunicate the query received from the communication module 40 to theprocessing module 46 that may store the query as sample queryinformation.

In the preview environment, the aspect extractor module 58 may receivemost popular queries from the client machine 23 and apply aspect rulesto extract aspect-value pairs from the query. Further, in the previewenvironment, the aspect extractor module 58 may maintain histograminformation 99 while applying the aspect rules to the queries. Forexample, the query processing module 69 may respond to a conditionclause 298 that evaluates TRUE (e.g., matching keyword) by incrementinga data item counter associated with the respective query. Further, inthe production environment, the aspect extractor module 58 maycommunicate the aspect-value pairs to the communication module 40.

The metadata service module 60 may communicate metadata information tothe communication module 40 based on the query that is received from thecommunication module 40. The metadata information may include metadatathat the communication module 40 may use to format and generate aninterface (e.g., user interface).

The search index engine 54 may include search indexes 64 and data itemsearch information 66 (e.g., including data items and associateddomain-value pairs and aspect-value pairs). In the productionenvironment, the search index engine 54 may receive the transformedquery from the communication module 40 and utilize the search indexes 64to identify data items based on the transformed query. Further, in theproduction environment, the search index engine 54 may furthercommunicate the found data items to the communication module 40.

FIG. 3 is a block diagram illustrating authoring modules 25, accordingto an embodiment. The authoring modules 25 may include a value generatormodule 79, a data item processing module 81, a query processing module69, a domain coverage module 87, an aspect coverage module 89 and anaspect-value coverage module 91, a rules editor 88, a viewing manager95, and a version manager 97. In general, the authoring modules 25 maybe used to author, analyze and generate the above described domain andaspect rules. Specifically, the authoring modules 25 may generatecandidate values and aspect-value pair(s) that include the candidatevalues. The generated aspect-value pair(s) may be utilized by the ruleseditor 88 to generate one or more aspect rules. In general, the ruleseditor 88 may be utilized to edit and generate aspect and/or domainrules. The version manager 97 may be utilized to publish versions ofrules.

The data item processing module 81 may be used to request data items forthe preview environment. For example, the rules (e.g., domain andaspect) may be published or applied to the requested data items. Thedata item processing module 81 may be utilized to request differenttypes of data items for the preview environment, as described furtherbelow.

The viewing manager 95 may be utilized to view coverage of the rules.For example, the viewing manager 95 may represent percentage coveragefor most popular queries, domains, aspects, or aspect-values asinterface elements. Interface elements may include user interfaceelements, audio interface elements, media interface elements, machineinterface elements respectively presented on a user interface, audiointerface, media interface and/or a machine interface. For example, inone embodiment, the viewing manager 95 may represent percentage coveragefor queries or data items as user interface elements that may bedisplayed on a user interface. Further, the viewing manager 95 mayreceive a request from a category manager to display the percentagecoverage of the most popular queries for a specified category. Inresponse to receiving the request, the viewing manager 95 may requestthe query retrieval module 93 on the information storage and retrievalplatform 12 to retrieve queries for the specified categories.

The value generator module 79 may receive a request from a categorymanager to suggest candidate values for a particular aspect. In responseto receiving the request, the value generator module 79 may communicatethe request to string analyzer module, the request including the aspectand existing candidate values. Further, the value generator module 79may receive candidate values from the string analyzer module 47 andprompt the category manager to select candidate value(s).

The query processing module 69 may determine a percentage of coveragefor each of the most popular queries. The domain coverage module 87 maydetermine a percentage of coverage for a selected domain(s). The aspectcoverage module 87 may determine a percentage of coverage for each ofthe aspects within a selected domain. The aspect-value coverage module91 may determine a percentage of coverage for each of the aspect-valueswithin a selected domain and aspect.

FIG. 4 is a block diagram further illustrating the information storageand retrieval platform 12, according to an embodiment. For example, aspreviously described, the information storage and retrieval platform 12may be embodied as a network-based marketplace (e.g., eBay, the WorldsOnline Marketplace developed by eBay Inc., of San Jose, Calif.) thatsupports the transaction of data items or listings (e.g., goods orservices) between sellers and buyers.

Rules Generation

At operation 80, a category or data manager may utilize the authoringmodules 25 to author rules that may include classification rules (e.g.,domain rules and aspect rules) and metadata rules that may be publishedin the production environment or the preview environment on theinformation storage and retrieval platform 12. The following operations82 through 114 provide an overview of a publication of rules in theproduction environment and operation of the production environment.

At operation 82, the processing module 46 may receive and store therules in the database 36 in the form of classification information 49and metadata information 66.

At operation 84, the processing module 46 may communicate the rules overa bus to a query engine 52, a metadata service module 60, and aclassification service engine 48. For example, the category manager maypublish the rules in real-time to facilitate the addition of new rulesor the modification of existing rules while the information storage andretrieval platform 12 may be operating. In one embodiment, theprocessing module 46, query engine 52, metadata service module 60 andclassification service engine 48 may communicate with each other over abus that utilizes publish/subscribe middleware and database accesssoftware. In one embodiment the middleware may be embodied as TIBCORENDEZVOUS™, a middleware or Enterprise Application Integration (EAI)product developed by Tibco Software, Inc. Palo Alto, Calif.

Data Item Generation

At operation 90, an author or publisher (e.g., a seller, user, etc.)enters information including item information into a client machine 20.The client machine 20 may communicate the item information to theinformation storage and retrieval platform 12 where the item informationmay be stored as a data item 65 in data item information 67 in thedatabase 36. The item information entered by the user may includekeywords in a title/description, one or more categories in which to listthe data item 65, and one or more item-specifics (e.g., color=blue). Forexample, the data item may describe a pair of shoes for auction or sale.

At operation 92, a scrubber module 50 may read the data item 65 andutilize the services of the classification service engine 48 (operation94). The classification service engine 48 may structure the iteminformation in the data item. For example, the classification serviceengine 48 may structure the data item by applying domain rules andaspect rules to the data item 65. The domain rules and aspect rules mayrespectively include a condition clause and a predicate clause. Theclassification service engine 48 may apply a condition clause to thedata item 65 (e.g., Title, description, category, item-specific, etc.)and if the condition evaluates TRUE, then the corresponding predicateclause (e.g., domain-value pair, or aspect-value pair) be associatedwith the data item 65. For example, a seller may enter a data item 65that includes Category=“Debutante's Shoes”, Title=“AK Size 8 BlackPumps” and the classification service engine 48 may apply domain rulesto the data item 65 to identify one or more domain-value pairs that maybe stored with the data item 65 (e.g., If category=“Debutante's Shoes”then PRODUCT TYPE=Women's Shoes, AISLE=shoes, DEPARTMENT=Apparel &Accessories). Further, the classification service engine 48 may applyaspect rules to identify one or more aspect-value pairs that may beassociated with the data item 65 (e.g., If Title=black then color=black,etc.).

The above described domain-value pairs enable the data items to beidentified (e.g., searched with a query) or browsed according todomains. According to one embodiment the domains may include a hierarchyof product domains, aisle domains, and department domains. The productdomain represents the lowest level of the hierarchy and includes dataitems in the form of products (e.g., women's shoes, belts, watches,etc.) or services offered for sale on the information storage andretrieval platform. The aisle domain (e.g., Women's Clothing) representsthe next level in the hierarchy and may include one or more productdomains. The department domain (e.g., Apparel and Accessories)represents the highest level in the hierarchy and may include one ormore aisle or product domains. Other embodiments may include differentnumber or nesting of domains. Accordingly, the above describeddomain-value pairs may include a product type domain-value pair (e.g.,“PRODUCT TYPE=Women's Shoes”, PRODUCT TYPE=Watches“, etc.), an aisletype domain-value pair (e.g., “AISLE TYPE=Women's Clothing”, AISLETYPE=Women's Accessories”, etc.) or a department domain-value pair(“AISLE TYPE=Women's Clothing”).

The above described aspect-value pairs may be domain specific and enablethe data items to be identified (e.g., searched with a query) or browsedwithin a domain. For example, in the product domain “Women's Shoes” thefollowing aspects may be used to describe women's shoes—color, brand,size. Further each of the aspects may be associated with one or morevalues to form the aspect-value pair (e.g., COLOR=blue, COLOR=red,etc.). Further, the classification service engine 48 may, in an exampleembodiment, assign only canonical values to the value of an aspect-valuepair. For example, the seller may enter any of the following strings “AKlein”, “Anne Klein” and “AK”; however, in each case, the classificationservice engine 48 may associate an aspect-value pair with the samecanonical value, Brand=“Anne Klein.”

At operation 96, the scrubber module 50 may store the data item 65,domain value-pairs, and aspect-value pairs as data item searchinformation 66 in the database 36.

At operation 98 the scrubber module 50 pushes or publishes the data itemsearch information 66 over a bus in real time to a search index engine54 that may store the data item search information 66 and update searchindexes 64 based on the data item search information 66. For example,the search index engine 54 may add a data item identification number toappropriate search indexes 64 that may be associated with keyword(s) oraspect-value pairs in the data item 65. The scrubber module 50 andsearch index engine 54 may communicate with each other over a bus thatutilizes publish/subscribe middleware and database access software. Inone embodiment the middleware may be embodied as TIBCO RENDEZVOUS™, asdescribed above.

Query Time Operations

At operation 100, a user may enter a query that includes different typesof constraints including a keyword constraint, an item-specificconstraint, and a category constraint. The query may be received by acommunication module 40 at the information storage and retrievalplatform 12.

At operation 102, the communication module 40 may communicate the queryto the query engine 52, at a back end server 103 that may include theaspect extractor module 58 and the metadata service module 60. Theaspect extractor module 58 may apply the aspect rules associated withthe product type domain “Women's Shoes” to the query to extractaspect-values from the query. For example, the aspect-value pairsCOLOR=ruby, COLOR=red, BRAND=anne klein, size=8 IN PRODUCT TYPE=Women'sShoes may be extracted from the query “A Klein shoes size 8 ruby.”Further, the aspect extractor module 58 may assign the same canonicalvalues that were assigned by the classification service engine 48, asdescribed below. Indeed, the aspect extractor module 58 may utilize asubset of the same aspect rules that were utilized by the classificationservice engine 48.

At operation 104, the aspect extractor module 58 may communicate theextracted aspect-value pairs to the communication module 40. Further,the metadata service module 60 may communicate metadata information 62to the communication module 40. The communication module 40 may utilizethe extracted aspect-value pairs to construct a transformed query. Forexample, the transformed query may include keywords from the query andaspect-value pairs extracted from the query. In addition, thecommunication module 40 may cache the metadata for subsequentconstruction of the interface (e.g. user interface).

At operation 106, the communication module 40 may communicate thetransformed query to the search index engine 54 at the back end server103. The search index engine 54 may utilize the transformed query toretrieve data items 65. The search index engine 54 retrieves the dataitems 65 by utilizing the search indexes 64. For example, the searchindex engine 54 may utilize the keywords constraints (e.g., keywords) inthe transformed query to retrieve item identification numbers fromsearch indexes 64 that correspond to the keywords. Further, the searchindex engine 54 may utilize the aspect-value pairs in the transformedquery to retrieve item identification numbers from search indexes 64that correspond to the aspect-value pairs.

At operation 108, the search index engine 54 may communicate theretrieved data items 65 to the communication module 40 that, in turn,utilizes the data items 65 and the metadata information 62 to generatean interface.

At operation 114, the communication module 40 communicates the interface(e.g., user interface) to the client machine 20 that displays theinterface to the user (e.g. buyer or bidder).

FIG. 5 is a diagram illustrating a domain structure 120, according toone embodiment. The domain structure 120 is shown to include buy-sidedata 122 and sell-side data 124. The sell-side data 124 is shown toinclude categories 126 that may have been selected by an author (e.g.,seller) of the data item 65 to categorize the data item 65 on theinformation storage and retrieval platform 12. For example, the authormay select one or more categories 126 including collectibles, jewelryand watches, debutante's shoes, etc. The buy-side data 122 is shown toinclude the above described product domains 132 (e.g., Belts, Watches,Handbags, Women's Shoes, etc.), aisle domains 130 (e.g., Women'sAccessories, Women's Clothing, Women's Bottoms, etc.) and a departmentdomain 128 (e.g., Apparel and Accessories). The previously describeddomain rules may be used to associate sell side data 124 (e.g.,categories) to the product, aisle and department domains 128, 130, 132.

FIG. 6 is a table 148 further illustrating sell-side data 150 andbuy-side data 152, according to one embodiment. The sell-side data 150may be entered by an author (e.g., seller) of a listing or data item 65and stored in the data item 65 and, as described above. The sell-sidedata 150 may include a category 154, a title 156 and one or moreitem-specifics 158, 160. For example, the sell-side data 150 illustratesthe author as entering the category 154 “Debutante's Shoes”, the title156 “AK Size 8 Ruby Pumps”, the item-specific 158 “Brand=Via Spiga” andthe item-specific 160 Size=8. The buy-side data 152 is shown to includethe product domain 132 “Women's Shoes”, the aisle domain 130 “Women'sClothing”, the department domain 128 “Apparel & Accessories”, the aspect“Color”, the aspect “Brand” and the aspect “Size.” The buy-side data 152may be associated with the sell-side data 150 via the domain rules andaspect rules, as previously described. Specifically, the conditionclause in the rules may be used to test sell-side data 150. If the ruleevaluates TRUE then buy-side data 152 in the same column may beassociated with the data item 65. For example, the buy-side data 152 isshown to include a product domain-value pair 201 (e.g., PRODUCTTYPE=Women's Shoes), an aisle domain-value pair 201 (e.g., AISLETYPE=Women's Clothing), a department domain-value pair (e.g., DEPARTMENTTYPE=Apparel & Accessories) that may have been associated with the dataitem 65 based on the category 154 “Debutante's Shoes.” Note thatmultiple aspect brands (e.g., Anne Klein, Via Spiga) may be associatedwith the data item 65 based on the title 156 and the item-specific 158.Further note that aspect rules may be designed to infer or map oneaspect-value pair to another. For example, the assignment of theaspect-value pair COLOR=ruby may be used to infer the assignment ofanother aspect-value pair COLR=red because ruby is a type of red. In oneembodiment, the inference may be made with an aspect rule that includesa predicate clause that determines whether an aspect value pair is hasbeen assigned to the data item 65 (e.g., if COLOR=red, then COLOR=ruby).

FIG. 7 is a diagram illustrating a canonical matching concept 210,according to an embodiment. The canonical matching concept 210 may beused to identify a data item 65 with a query. The canonical matchingconcept 210 may use a value (e.g., canonical value) to represent othervalues 208. For example, a query that includes the string “AK” may bereceived from a client machine. The query may be processed with anaspect rule that may include a condition clause that tests for multiplekeywords (If “Anne Klein” OR “Ann Klein” OR “A Klein” OR “AKNY” OR “AK”,etc.) to associate the canonical aspect-value pair “BRAND=Anne Klein” tothe query.

Continuing with example, a data item may be received from a seller atthe client machine and may include any of the illustrated strings thatrepresent “Ann Klein.” For example, the title in the data item maycontain “Anne Klein.” Continuing with the example, the data item 65 maybe processed with an aspect rule that includes a condition clause thattests for keywords in the title (If title=“Anne Klein” OR “Ann Klein” OR“A Klein” OR “AKNY” OR “AK”, etc.) to associate the canonicalaspect-value pair 204 “BRAND=“Anne Klein” to the data item. Accordingly,the data item may be found by a buyer that enters a query that includeskeywords that do not match the information entered by the seller.

FIG. 8A is a block diagram illustrating databases 36, according to anembodiment. The databases 36 include the production publish databases71, preview publish databases 12, and the marketplace information 44.The production publish databases 71 may be utilized in the productionenvironment and the preview publish databases 72 may be utilized in thepreview environment. The production publish databases 71 include dataitem information 67, data item search information 66 and classificationinformation 49. The classification information 49 includes the domainand aspect rules that may be applied to the data item information 67(e.g., data items 65) to generate the data item search information 66(e.g., data items 65 that have been structured with domain-value pairsand aspect-value pairs). The publish databases 72 includes sampleinformation 63, sample data item search information 74, andclassification information 49. The classification information 49includes the domain and aspect rules that may be applied to the sampledata item information 83 (e.g., data items 65) to generate the sampledata item search information 74 (e.g., data items 65 that have beenstructured with domain-value pairs and aspect-value pairs). Further, theaspect rules in the classification information 49 may be applied tosample query information 73 to generate transformed queries that may beutilized to search the sample data item information 83.

The sample information 63 is shown to include sample query information73 and sample data item information 83. The sample query information 73includes queries that have been received by the information storage andretrieval platform 12 for a predetermined period of time. For example,the sample query information 73 may include all queries received inproduction environment in the last year. The sample data iteminformation 83 includes data items 65 that have been sampled from thedata item information 67 (e.g., live data). The sample data iteminformation 83 may include different sets of data items 65 that may bepublished to preview environment in the information storage andretrieval platform 12. For example, the sets of data items 65 mayinclude a current set, a seasonal set, or an historical set. The currentset may be a sample taken on a date close to the current date (e.g., thecurrent date or one or two days after the current date). The seasonalset may be taken on a date close to a holiday date (e.g., the holidaydate one or two days before or after the holiday date). The historicalset may be taken on a date close to a historical date (e.g., thehistorical date or one or two days before or after the historical date(e.g., 9/11)).

Further, example sets of data items 65 may include data items 65 thathave been selected to include lengthy titles, a lengthy descriptions, aspecific category, hard to classify data items 65, and data itemsentered by a particular seller segment. The lengthy title set and thelengthy description sets may include data items 65 that have beenfiltered based on the number of words in the title or description. Forexample, the title or description for data items 65 in each of the setsmay exceed a predetermined number of words. The specific category setmay include data items 65 that have been classified by a seller in aspecific category. The hard to classify set may include data items 65that have been historically difficult for category managers to classifywith domain and/or aspect rules. The particular seller segment set mayinclude data items 65 that have been authored by sellers that sellproducts or services on the information storage and retrieval platform12 with revenues exceeding a predetermined amount.

As previously described, in one embodiment, the information storage andretrieval platform 12 may be embodied as a network-based marketplace(e.g., eBay, the Worlds Online Marketplace developed by eBay Inc., ofSan Jose, Calif.) that supports the transaction of data items orlistings (e.g., goods or services) between sellers and buyers. In suchan embodiment the databases 36 may include marketplace information 44.

FIG. 8B is a block diagram illustrating databases 27, according to anembodiment, including authoring information 86. The authoringinformation 86 includes preview publish information 75, productionclassification information 76, preview classification information 78,most popular query information 77 and histogram information 99. Thepreview publish information 75 may be used to identify domaindictionaries to publish to the production environment or the previewenvironment. The production classification information 76 stores domaindictionaries that are currently published in the production environmentas classification information 49. The preview classification information78 stores new or edited domain dictionaries. Indeed, the domaindictionaries in the preview classification information 78 may beconcurrently updated by multiple category managers. The preview publishinformation 75 may be utilized to identify the domain dictionaries inthe production classification information 76 or the previewclassification information 78 to publish to the preview environment orthe production environment. For example, the preview publish information75 may be utilized to identify the latest version of a domaindictionary.

The most popular query information 77 may be used to store most popularqueries. The histogram information 99 may be generated by theclassification service engine 48 and utilized to store statisticalinformation (e.g., counters) based on the application of domain oraspect rules to the data items or queries. The histogram information 99may be communicated to the authoring modules to determine percentagecoverage for most popular queries, domains, aspects, and aspect-valuepairs.

FIG. 9A is a block diagram illustrating the classification information49, according to an embodiment. The classification information 49 in theproduction environment includes a complete set of domain dictionaries252 that are published to the production environment on the informationstorage and retrieval platform 12. The classification information 49 inthe preview environment includes a complete set of domain dictionaries252 that are published to the preview environment on the informationstorage and retrieval platform 12. Each domain dictionary 252 may beassociated with a single product type (e.g., shoes, belts, watches,etc.) and includes domain rules 192, aspect rules 296, a domain version197, and a domain identifier 199. The domain rules 192 may be used toassociate a product domain 132 and/or aisle domain 130 and/or departmentdomain 128 to the data item 65 based on the contents of the data item.The aspect rules 296 may be used to associate aspect-value pairs to thedata item 65 based on the contents of a data item 65. Specifically, theaspect rules 296 in a domain dictionary 252 may be utilized to associateaspect-value pairs to data items identified, via domain rules 192 in thesame domain dictionary 252, as belonging to the product type of thedomain dictionary 252. For example, the domain rules 192 from theproduct domain 132 “women's shoes” may be used to identify a data item65 as belonging to the “women's shoe's” product domain 132 and theaspect rules 296 from the same product domain 132 “women's shoes” may beused to associate aspect-value pairs to data items identified asbelonging to the product domain 132 “women's shoes.” Further, the aspectrules 296 for a particular product domain 132 may be utilized toassociate aspect-value pairs to a query to form a transformed query thatmay be utilized to search for data items identified as being in the sameproduct domain 132 and containing matching aspect-value pairs. Thedomain version 197 may be used to identify the version of the domaindictionary currently published to and operating in productionenvironment or the preview environment on the information storage andretrieval platform 12.

FIG. 9B is a block diagram illustrating production classificationinformation 76, according to an embodiment. The productionclassification information 76 includes a complete set of domaindictionaries 252 that have been published to the production environmenton the information storage and retrieval platform 12. The productionclassification information 76 may include domain dictionaries 252 thatmay be identified by the preview publish information 75 for publicationto the preview environment or the publication environment on theinformation storage and retrieval platform 12.

FIG. 9C is a block diagram illustrating the preview classificationinformation 78, according to an embodiment. The preview classificationinformation 78 does not include a complete set of domain dictionariesfor publication; but rather new domain dictionaries 252 that have beencreated by a category manager or existing domain dictionaries 252 thathave been edited by a category manager. The preview classificationinformation 78 may include domain dictionaries 252 that may beidentified by the preview publish information 75 for publication to thepreview environment or the publication environment on the informationstorage and retrieval platform 12.

FIG. 10 is a diagram illustrating rules 190, according to an embodiment.The rules 290 include domain rules 292 and aspect rules 296. The domainrules 292 and aspect rules 296 include a condition clause 298 (e.g.,trigger, Boolean expression, etc.) on the left and a predicate clause300 on the right. The condition clause 298 that may include a Booleanexpression that may evaluate TRUE or FALSE. In one embodiment theBoolean expression may be used to evaluate one or more fields in thedata item 65 to identify matching information (e.g., condition clause298 evaluates TRUE). For example, the condition clause 298 may evaluateTRUE responsive to the identification of matching information in thecategory 154 and/or in the title 156, and/or in the item-specific 158 ina data item 65. Further, the Boolean expression may include multipleoperators (AND, OR, EXCLUSIVE OR, etc.). If the condition clause 298evaluates TRUE, then, the predicate clause 300 may be executed toassociate the contents of the predicate clause with the data item 65.

The predicate clauses 300 associated with the domain rules 292 mayinclude a domain-value pair 301 (e.g., PRODUCT TYPE=Women's Shoes). Thedomain-value pair 301 may include a domain type 303 (e.g., PRODUCT TYPE)and a domain 305 (e.g., “Women's Shoes”). The domain type 303 maydescribe the type of domain (e.g., PRODUCT TYPE, AISLE TYPE, DEPARTMENTTYPE, etc. The domain 305 may be any one of the possible domain namesassociated with the corresponding domain type 303. The domain-value pair201 “PRODUCT TYPE=Women's Shoes” may further be used as a conditionclause 298 to trigger the association of another domain-value pair 301.For example, the domain rule 294 is shown to evaluate TRUE if the dataitem 65 includes the previously associated domain-value pair 301“PRODUCT TYPE=Women's Shoes.” If TRUE, then the domain-value pair 301“AISLE TYPE=Women's Clothing” may also be associated with the data item65. Accordingly, the association of one domain-value pair 301 to a dataitem 65 may trigger the association of another domain-value pair 301(e.g., mapping).

The predicate clauses 300 associated with the aspect rules 296 mayinclude an aspect-value pair 304 (e.g., COLOR=ruby). For example, theaspect rule 297 is associated with aspect-value pair 304 “COLOR=ruby”that may be assigned to a data item 65 that contains a Title with theword “Ruby.” The aspect-value pair 304 may include an aspect 306 such as“COLOR” and a value 308 such as “ruby.” The aspect-value pair 304 (e.g.,COLOR=ruby) may further be used as a condition clause 298. For example,an aspect rule 299 may include the aspect-value pair 204 (e.g.,COLOR=ruby) as a condition clause 298 to trigger the association ofanother aspect-value pair 304 (“color=red”) to the data item 65.Accordingly, the association of one aspect-value pair 304 to the dataitem 65 may be used to associate another aspect-value pair 204 to thedata item 65. In addition, the aspect rules 296 may include a conditionclause 298 that includes a keyword 302. For example, an aspect rule 296is shown to include the keyword 302 “ruby.” The keyword(s) 302 in theaspect rule 296 may be used by the aspect extractor module 58 to matchkeyword(s) 302 in a query. In response to the match, the aspectextractor module 58 may assign the aspect-value pair (e.g., COLOR=ruby)from the corresponding predicate clause 300 to a transformed query thatmay be used to search data items 65 including the same aspect-valuepair.

FIG. 11 is a block diagram illustrating data item information 67,according to an embodiment. The data item information 67 is shown toinclude multiple data items. The data item 65 may include a title 320, adescription 322, one or more categories 324, one or more item-specifics326, and a data item identification number 328. The title 320 mayinclude keywords entered by the user to describe the data item 65. Forexample, the present data item 65, as illustrated, shows a title “AKSize 8 Ruby Pumps.” The description 322 may be used to describe the dataitem 65 that may be for sale or auction. The category 324 may be acategory selected by the seller or author of the data item 65. Theitem-specific 326 may include item-specific (e.g., Via Spiga, Size 8)information selected by the seller or author of the data item 65. In thepresent example, the data item 65 may be a pair of shoes, and thereforean item-specific 264 for BRAND is appropriate. The data itemidentification number 266 uniquely identifies the data item 65 in theinformation storage and retrieval platform 12.

FIG. 12 is a block diagram illustrating the search index engine 54,according to an embodiment. The search index engine 54 is shown toinclude the search index 64, and the data item search information 66.The search index 64 is further shown to include multiple aspect-valuepairs 304 and multiple keywords 302. Each aspect-value pair 304 andkeyword 302 is further illustrated as associated with one or more dataitem identification numbers 328. For example, if a data item 65 wasassociated with the aspect-value pair 304 “BRAND=Anne Klein”, then thedata item identification number 328 corresponding to the data item 65may be associated with the aspect-value pair “BRAND=Anne Klein.” Also,for example, if a data item 65 was associated with the aspect-value pair304 “COLOR=Ruby”, then the data item identification number 328 of thedata item 65 may be associated with the keyword 202 “Ruby” in the searchindex 64.

FIG. 13A is a block diagram illustrating the data item searchinformation 66, according to an embodiment. The data item searchinformation 66 may be utilized in the production environment and isshown to include multiple data item structured information 340 entries.Each data item structured information 340 entry may contain a data item65, one or more domain-value pairs 301 that have been assigned to thedata item 65 based on the application of one or more domain rules 292and one or more aspect-value pairs 304 that have been assigned to thedata item 65 based on the application of one or more aspect rules 296 inthe production environment.

FIG. 13B is a block diagram illustrating the sample data item searchinformation 74, according to an embodiment. The sample data item searchinformation 74 may be utilized in the preview environment and is shownto include multiple data item structured information 340 entries. Eachdata item structured information 340 entry may contain a data item 65,one or more domain-value pairs 301 that have been assigned to the dataitem 65 based on the application of one or more domain rules 292 and oneor more aspect-value pairs 304 that have been assigned to the data item65 based on the application of one or more aspect rules 296 in thepreview environment.

FIG. 14 is a block diagram illustrating sample query information 73,according to an embodiment. The sample query information 73 includes oneor more query entries 400. Each query entry 400 includes one or morekeywords 302, one or more categories 324 one or more item specifics 326and a date received 402. The sample query information 73 is used tostore queries received by the information storage and retrieval platformfrom a user (e.g., operating client machine 20).

FIG. 15 is a block diagram illustrating sampling criteria 410, accordingto an embodiment, for data items and queries. The sampling criteria 410may be used to capture a current sample 412, a seasonal sample 414, oran historical sample 416. The current sample 412 may represent a sampleof queries taken from the sample query information 73 on the informationstorage and retrieval platform 12. The current sample 412 may alsorepresent a sample of data items 65 taken from the data item information67 and stored in the sample data item information 83. The seasonalsample 414 may queries taken from the sample query information 73.Further, the seasonal sample 414 may be data items 65 taken from thedata item information 67. The historical sample 416 may be queries takenfrom the sample query information 73. Further, the historical sample 416may be data items 65 taken from the data item information 67.

FIG. 16 is a block diagram illustrating preview publish information 75,according to an embodiment. The preview publish information 75 isutilized to schedule the publication of a domain dictionary 252 to thepreview environment or the production environment. The preview publishinformation 75 may be utilized to publish a domain dictionary 252 thatis new, deleted, or updated (e.g., add rule(s), delete rule(s), ormodify rules(s)). It will be appreciated that multiple category managersmay be concurrently working on multiple domain dictionaries 252 and thatthe preview publish information 75 may be utilized to identify domaindictionaries 252 for publication to the preview environment or theproduction environment. The preview publish information 75 includesdomain dictionary information entries 420. Each domain dictionaryinformation 420 identifies a domain version 197 and domain identifier199 associated with a domain dictionary 252 that is to be published tothe preview environment or the production environment.

FIG. 17 is a block diagram illustrating most popular query information77, according to an embodiment. The most popular query information 422includes multiple query information entries 424 that respectivelyinclude the previously described query entry 400 and a query identifier428. The most popular query information 422 is communicated by the queryprocessing module 69 to the aspect extractor module 58 in the queryengine 52 in the preview environment on the information storage andretrieval platform 12. The aspect extractor module 58 reads each of thequery entries and applies the aspect rules 296 to the keywords in thequery entry 400.

FIG. 18 is a block diagram illustrating histogram information 99,according to an embodiment. The histogram information 99 includes domaincoverage information 442, aspect coverage information 444, and querycoverage information 445. The domain coverage information 442 and aspectcoverage information 444 may be generated by the classification serviceengine 48 which increments data item counters 446 responsive toapplication of domain rules 186 and aspect rules 296 that result inassignment of corresponding predicate clauses 300 to the data items 65.The domain coverage information 442 may be communicated to and read bythe domain coverage module 87 to determine percentage domain coverage.The aspect coverage information 444 may be communicated to and read bythe aspect coverage module 89 or the aspect-value percentage coveragemodule 91. The domain coverage information 440 includes domainidentifiers 199, data item counters 446, and total data item counters443. The total data item counters 443 include a count of all data items65 evaluated with domain rules 292. The respective data item counters446 may be incremented responsive to a domain rule 192 assigning acorresponding domain to a data item 65. Consider the following domainrule 192:

-   -   If category=“Debutante's Shoes” then PRODUCT TYPE=shoes

The domain 305 in the above predicate clause 300 includes the producttype domain “shoes.” Accordingly, the data item counter 446corresponding to the domain 305 “shoes” is incremented responsive to theassignment of “PRODUCT TYPE=shoes” to the data item 65.

The aspect coverage information 444 includes domain identifiers 199,aspects 306, values 308, data item counters 446 and a total data itemcounter 443. The total data item counters 443 include a count of alldata items 65 evaluated with aspect rules 296. The respective data itemcounter 446 may be incremented responsive to an aspect rule 196assigning the corresponding aspect-value pair (e.g., aspect 306 andvalue 308) to a data item 65. Consider the following aspect rules 296:

-   -   IN PRODUCT TYPE=SHOES, If title=ruby then COLOR=red

Responsive to applying the above aspect rule 196 from the domaindictionary 252 associated with the “shoes” domain to a data item 65, theaspect-value pair 304 “COLOR=red” may be assigned to the data item 65 ifthe word “red” is found in the title 320 field of the data item 65.Accordingly, the classification service engine 48 may increment the dataitem counter 446 in the aspect coverage information 444 that correspondsto the “shoes” domain, the aspect 306 “COLOR”, and the value 308 “red.”In yet another example, the same aspect value-pair, COLOR=red, may beassigned to the data item 65 based on the item specific 326 or thecategory 324 in the data item 65. Consider the following:

-   -   IN PRODUCT TYPE=SHOES, If item specific 3456=red then COLOR=red    -   IN PRODUCT TYPE=SHOES, If category=1234 then COLOR=red    -   IN PRODUCT TYPE=SHOES, If “ruby” then COLOR=red

Responsive to applying any of the above aspect rules 296, theaspect-value pair 304 “COLOR=red” may be assigned to the data item 65.Accordingly, the data item counter 446 corresponding to corresponds tothe “shoes” domain, the aspect 306 “COLOR”, and the value 308 “red” maybe incremented based on any of the above aspect rules evaluating TRUE.

The query coverage information 445 includes query identifiers 428, amatching aspect rule counter 447, and a total aspect rule counter 449.The respective matching aspect rule counters 447 may be incremented bythe aspect extractor module 58 responsive to an aspect rule 196 thatevaluates TRUE. For example, consider the following aspect rules 296:

-   IN PRODUCT TYPE=MILITARY SURPLUS, If navy, then SERVICE=Navy-   IN PRODUCT TYPE=CLOTHING, If navy, then COLOR=blue

If the above aspect rules 296 are applied to a query “Navy Seal Fins”then the matching aspect rule counter 447 corresponding to the query maybe incremented twice by the aspect extractor module 58. Further, thetotal aspect rule counter 449 may be incremented twice (e.g., for everyaspect rule 196 that is applied to the query) by the aspect extractormodule 58.

FIG. 19 is a flow chart illustrating a method 448 to generate rules toidentify data items, according to an embodiment. The method commences atoperation 450, at the client machine 23, with a category managerrequesting publication of domain dictionaries 252 to the previewenvironment on the information storage and retrieval platform 12. In oneembodiment, the request may be received and processed by the versionmanager 97 that utilizes the domain versions 197 identified in thepreview publish information 75. For example, the version manager 97 mayread the domain dictionary 252 from the preview classificationinformation 78 or the production classification information 78 based onthe latest domain version 197 identified in the preview publishinformation 75. Publication to the preview environment results inapplication of the domain rules 192 and the aspect rules 196 to sampledata item information 83 to generate sample data item search information74. For example, the sample data item information 83 may include acurrent sample 412 of data items 65, a seasonal sample 414 of data item65, an historical sample 416 of data items 65 or some other type ofsample, as previously described.

At operation 451, on the back end servers 103, the processing module 46receives a complete set of domain dictionaries 252 in the form ofclassification information 49 and utilizes the publish modules 42 topublish the classification information 49 to the preview environment.

At the client machine 23, the category manager may review the aspectrules 296 and determine that the aspect 306 “COLOR” in the domain 305“shoes” may provide greater coverage if additional values 308 werefound. To this end the category manager may request that candidatevalues be suggested.

FIG. 34 is a diagram illustrating a user interface 453, according to anembodiment, to request candidate values. The user interface 453 showsthe domain 305 “shoes” selected, the aspect 306 “color” selected and thecurrent values 308 associated with the aspect “color” in the domain“shoes” (e.g., red, green, brown, and black). In one embodiment, theuser may right click a mouse and request that candidate values 308 besuggested.

Returning to FIG. 19, at operation 452, the value generator module 79receives the request to suggest candidate values and at operation 454communicates the request, the aspect “color”, and the existing values(e.g., red, green, brown, and black) to the information storage andretrieval platform 12.

At operation 456, the string analyzer module 47 receives the request,the aspect “COLOR”, and the existing values and at operation 458 thestring analyzer module 47 identifies strings of text in the sample queryinformation 73 and/or the data item information 65 that may include theaspect 306 or derivatives thereof as previously described. For example,the string analyzer module 47 may identify strings that contain theaspect “COLOR” or derivatives thereof (e.g., acronyms, synonyms,misspellings, etc.) in the keywords 302 in the query entries 400 of thesample query information 73 or in the keywords 302 contained in thetitle 320 or description 322 of data items 65 in the data iteminformation 65.

At operation 460, the string analyzer module 47 may analyze the stringof text. For example, the string analyzer module 47 may remove stopwords, the received values (e.g., red, green, brown, and black) and theaspect 306 or derivatives thereof from the identified strings of text toidentify candidate value(s) 308 that may remain in the identifiedstrings of text.

At operation 462, the string analyzer module 47 may communicate thecandidate values 308 to the client machine 23. For example, the stringanalyzer module 47 may communicate the candidate values ruby, purple,orange, and yellow.

At operation 464, at the client machine 23, the value generator module79 receives the candidate values, generates a user interface includingthe candidate values, and displays the user interface to the categorymanager. At operation 466, the category manager may select the candidatevalue 308 “ruby” to include the aspect-value pair “COLOR=ruby” in anaspect rule 296. For example, responsive to receiving the categorymanagers selections, the authoring modules 25 may associate theaspect-value pair “COLOR=ruby” (e.g., a predicate clause 300) to acondition clause 208.

At operation 468, the rules editor 88 may generate an aspect rule 196and enter the aspect-rule 196 into the domain dictionary 252 for theproduct “shoes.” For example, the following aspect rules 296 may begenerated and entered into the shoes domain dictionary 252:

-   IN Shoes, if ruby then COLOR=ruby-   IN Shoes, if title=ruby then COLOR=ruby

At operation 470, at the client machine 23, a category manager requestspublication of domain dictionaries 252 to the publication environment onthe information storage and retrieval platform 12. For example, thepublication request may include the above described rules. In oneembodiment, the request may be received and processed, at the clientmachine 23, by a version manager 97 that utilizes the domain versions197 identified in the preview publish information 75. For example, theversion manager 97 may read the domain dictionary 252 from the previewclassification information 78 or the production classificationinformation 76 based on the latest domain version 197 identified in thepreview publish information 75. Publication to the publicationenvironment results in application of the domain rules 192 and theaspect rules 196 to the data item information 67 utilized by theinformation storage and retrieval platform 12 as live data.

At operation 471, on the back end servers 103, the processing module 46receives a complete set of domain dictionaries 252 in the form ofclassification information 49 and utilizes the publish modules 42 topublish the classification information 49 to the production environmenton the information storage and retrieval platform 12. For example, theclassification service engine 48 may apply the domain rules 292 fromeach of the domain dictionaries 252 to the data items 65 and apply theaspect rules 296 from each of the domain dictionaries to the data items65. In applying the aspect rules 296, the classification service engine48 may concatenate the aspect-value pair 304 COLOR=ruby to a data item65 in the product type shoes domain. FIG. 31 is a diagram illustrating auser interface 473, according to an embodiment, showing a data item 65(callout 475) with a title 320 (callout 479) that contains the word“ruby.” Further, the data item 65 (callout 475) is shown to beclassified in the product domain 132 for shoes (callout 477).Application of the aspect-rule 196 “IN Shoes, if title=ruby thenCOLOR=ruby” to the data item 65 shown on the user interface 473 may,accordingly, result in the assignment of the aspect-value pair 304COLOR=ruby” to the data item 65.

Returning to FIG. 19, at operation 474, processing module 46 may updatethe query engine 53 with the aspect rules 296 “if ruby then COLOR=rubyresponsive to the publication request.

At operation 476, at the client machine 20, a user enters a query in theshoes category including the keywords “A Klein ruby pumps.” For example,FIG. 32 is a diagram illustrating a user interface 477, according to anembodiment, showing a query (callout 479) in the “shoes” category(callout 481) that contains the keyword 302 “ruby” (callout 481).Returning to FIG. 19, at operation 474, the client machine 20communicates the query and category to the front end servers 101.

At operation 478, the front end servers 101 receive the query and thecategory. At operation 480, the front end servers 101 communicate thesame to the back end servers 103. At operation 482, the back end servers103 store the query and the category as sample query information 73. Atoperation 484 the aspect extractor module 58 extracts the aspect-valuepair “COLOR=ruby” from the query. For example, the aspect extractormodule 58 may extract the aspect-value pair “COLOR=ruby” from the queryby applying the condition clause “if ruby” to the keywords 302 in thequery. Further, a transformed query may be constructed utilizing theextracted aspect-value pair “COLOR=ruby.”

At operation 486, the search index engine 54 utilizes the transformedquery to search for and identify a data item 65 in the domain shoes thatcontain the aspect-value pair “COLOR=ruby.” Next, the search indexengine 54 communicates the identified data item 65 to the front endserver 101.

At operation 490, at the front end server 101, the communication module40 receives the identified data item 65, generates a user interface thatcontains the identified data item 65, and communicates the userinterface to the client machine 20. At operation 492, at the clientmachine 20, the user interface containing the identified data item 65 isdisplayed to the user.

FIG. 20 is a flowchart illustrating a method 500, according to anembodiment, to represent percentage coverage for a subset of mostpopular queries. Illustrated on the far left are operations for a clientmachine 20 and illustrated on the far right are operations for a clientmachine 23. Illustrated on the center left are operations for a frontend server 101 and illustrated on the center right are operations forback end servers 103. The method 500 commences at the client machine 20,at operation 502, with a user entering a query for data items 65 at theclient machine 20 in the production environment. The web client 16 atthe client machine 20 communicates the query to the front end server101.

At operation 504, at the front end servers 101, an aspect extractormodule 58 receives the query and processes the query. Further, theaspect extractor module 58 communicates the query to a back end server103.

At operation 506, at the back end server 103, a processing module 46receives the query and stores the query in the sample query information73 on the database 36.

At operation 508, at the client machine 23, a category manager mayrequest publication of domain dictionaries 252 to the previewenvironment. In one embodiment, the request may be received andprocessed by the version manager 97 that utilizes the domain versions197 identified in the preview publish information 75. For example, theversion manager 97 may read the domain dictionary 252 from the previewclassification information 78 or the production classificationinformation 76 based on the latest domain version 197 identified in thepreview publish information 75.

At operation 510, on the back end servers 103, the processing module 46receives a complete set of domain dictionaries 252 in the form ofclassification information 49 and utilizes the published modules 42 topublish the classification information 49 to the preview environment.

At operation 512, at the client machine 23, the version manager 97receives a request to determine the percentage of coverage for a subsetof most popular queries in a category.

FIG. 35 is a diagram illustrating a user interface 520, according to anembodiment, to determine the percentage of coverage for a subset of mostpopular queries in a category. The user interface 520 is shown toinclude a category explorer window 522 that lists categories (e.g.,utilized by a seller to list data items 65 for sale or a buyer to searchfor the data items 65). The category explorer 522 is shown to include acategory selection 524, “women's shoes,” that has been entered by thecategory manager to determine percentage coverage for the most popularqueries that include the category “women's shoes.”

FIG. 33 is a diagram illustrating the user interface 530, according toan embodiment, to enter a query. The user interface 530 is presented toillustrate a query that includes a category. The user interface 530 isshown to include a keyword entry box 532, a category entry box 534, andan item specific entry box 536. For example, the user interface 530illustrates a query for data items 65 that may contain the keywords“Klein Red pumps,” the item specific “Via Spiga” and be listed in thecategory “shoes”.

Returning to FIG. 20, at operation 540, at the client machine 23, theviewing manager 95 communicates a request for queries that include thecategory “women's shoes” to the back end servers 103.

At operation 542, at the back end servers 103, the query retrievalmodule 93 receives the request for queries in the “women's shoes”category. The query retrieval module 93 reads the sample queryinformation 73 to identify query entries 400 that include the “women'sshoes” category and, at operation 544, the query retrieval module 93communicates the identified query entries 400 in the form of samplequery information 73 to the client machine 23.

At operation 546, on the client machine 23 the query processing module69 receives the sample query information 73 and, at operation 548,determines the most popular queries. For example, the query processingmodule 69 may identify the query entries 400 in the sample queryinformation 73 that includes the most frequently entered keyword(s) 302in the specified category 324. In one embodiment, the query processingmodule 69 may determine a pre-determined number of most popular queriesthat may be received by the information storage and retrieval platform12 for a predetermined period of time. For example, consider thefollowing queries taken from a sample of ten thousand queries that mayhave been received by the information storage and retrieval platform 12in the last twenty-four hours:

Query Received Frequency “pink ipod” 1000 “blue ipod” 997 “black ipod”996 “via spiga shoes” 200

In one embodiment the predetermined number of most popular queries maybe three, the predetermined period of time to receive the queries may betwenty-four hours and the frequency of receiving each of the abovelisted queries may be 1000, 997, 996 and 200, respectively. Accordingly,the three most popular queries may be “pink ipod” “pink ipod” and “blackipod,” At operation 550, the query processing module 69 communicates themost popular query information 422 including query entries 400identified as most popular to the back end server 103.

At operation 552, at the back end server 103, the query engine 52applies the aspect rules 296 to the query entries 400 in the previewenvironment and generates histogram information 99. At operation 554,the query engine 52 communicates the histogram information 99, includingthe query coverage information 445, to the client machine 23.

At operation 556, at the client machine 23, the query processing module69 determines the percentage coverage for most popular queries based onthe query coverage information 445. At operation 558, the viewingmanager 95 generates interface elements representing the subset of mostpopular queries respectively. In one embodiment, the viewing manager 95may display interface elements as user interface elements on a userinterface.

Returning to FIG. 35, the user interface 520 is shown to include a mostpopular queries preview panel 572. The most popular queries previewpanel 570 shows the most popular queries 574 respectively associatedwith a count of matching aspect rules 296 (callout 576) (e.g., aspectrules 296 with condition clauses 298 that evaluated TRUE) and percentagecoverage 578 (e.g., first quantity of rules/total quantity of rules).

FIG. 21 is a flow chart illustrating a method 590, according to anembodiment, to apply aspect rules 296 to most popular queries. Themethod 590 commences at operation 592 with the query engine 52 readingthe next most popular query in the most popular query information 77. Atoperation 594, the query engine 52 identifies the next domain dictionary252. At operation 596, the query engine 52 reads the next aspect rule296 from the domain dictionary 252. At operation 598, the query engine52 counts the aspect rule 296 by incrementing a total quantity of rulesin the form of the total aspect rule counter 449 in the query coverageinformation 445.

At decision operation 599, the aspect extractor module 58 determines ifthe keyword(s) 302 in the query entry 400 matches the keyword(s) 302 inthe condition clause 298 of the aspect rule 296. If the keyword(s)match, then a branch is made to operation 600. Otherwise processingcontinues at decision operation 602. At operation 600, the aspectextractor module 58 counts the matching aspect rule 296. For example,the aspect extractor module 58 may increment a second quantity of rulesin the form of a matching aspect rule counter 447 that corresponds tothe query in the query coverage information 445.

At decision operation 602, the query engine 52 determines if there aremore aspect rules 296. If there are more aspect rules 296, then a branchis made to operation 596. Otherwise processing continues at decisionoperation 604.

At decision operation 604, the query engine 52 determines if there aremore domain dictionaries 252. If there are more domain dictionaries 252,then processing continues at operation 594. Otherwise processingcontinues at decision operation 606.

At decision operation 606, the query engine 52 determines if there aremore query entries 400 in the most popular query information 422. Ifthere are more query entries 400, then a branch is made to operation592. Otherwise processing ends.

FIG. 22 is a flow chart illustrating a method 620, according to anembodiment, to determine percentage coverage for most popular queries.The method 620 commences at operation 622 with the query processingmodule 69, reading the next query identifier 428 from the query coverageinformation 445.

At operation 624, the query processing module 69 divides a quantityrules (e.g., second quantity of rules) in the form of a matching aspectrule counter 447 corresponding to the query identifier 428 by a totalquantity of rules in the form of the total aspect rule counter 449 todetermine percentage coverage for the query entry 400. At decisionoperation 626, the query processing module 69 determines if there aremore query entries 400. If there are more query entries 400, then abranch is made to operation 622. Otherwise processing ends.

FIG. 23 is a flow chart illustrating a method 630, according to anembodiment, to represent percentage coverage associated with a domain305. Illustrated on the left are operations performed at back endservers 103 and illustrated on the right are operations performed on aclient machine 23. The method 630 commences at operation 632, at theclient machine 23, with a category manager requesting data items 65 forthe preview environment. For example, in one embodiment, a data itemprocessing module 81 may receive the request from the category manager.The request may identify a current sample 412, a seasonal sample 414, anhistorical sample 416 or some other type of sample of data items 65 aspreviously described. Next, the data item processing module 81 maycommunicate the request to the back end servers 103.

At operation 634, at the back end servers 103, the data item retrievalmodule 85 receives the request for the data items 65 and processes therequest. For example, at operation 636, the data item retrieval module85 may request and receive a current sample 412 of data items 65 (e.g.,live data items 65 sampled from the data item information 67). In oneembodiment ten percent of the data items 65 may be sampled from the dataitem information 67. In response to receiving the current sample 412,the data item retrieval module 85 may store the current sample 412 assample data item information 83 that may be utilized as sample data forthe next publication of rules to the preview environment. In anotherembodiment, the data item retrieval module 85 may utilize an existingsample that has previously been received from the data item information67. For example, the data item retrieval module 85 may utilize aseasonal sample 414 or an historical sample 416 against which the rulesmay be published in the preview environment, the seasonal sample 414 orhistorical sample previously requested and received from the data iteminformation 67.

At operation 638, at the client machine 23, a category manager mayrequest publication of domain dictionaries 252 to the previewenvironment. For example, the version manager 97 may respond to therequest by utilizing the domain versions 197 identified in the previewpublish information 75 to identify the appropriate domain dictionaries252 in the production classification information 76 or the previewclassification information 78.

At operation 640, on the back end servers 103, the processing module 46receives a complete set of domain dictionaries 252 and utilizes thepublish modules 42 to publish the domain dictionaries 252 to the previewenvironment. For example, the classification service engine 48 may applythe domain rules 292 (operation 640) to the current sample 412 of thedata items 65 and the aspect rules 296 (operation 642) to the currentsample 412 of the data items 65. Further, the classification serviceengine 48 may generate and store histogram information 99 (operations640, 642).

At operation 644, the classification service engine 48 communicates thehistogram information 99 to the client machine 23. For example, thehistogram information 99 may include aspect coverage information 444 anddomain coverage information 442.

At operation 646, at the client machine 23, the authoring modules 25 mayreceive and store the histogram information 99. At operation 648, thedomain coverage module 87 receives a domain selection from a categorymanager. For example, the category manager may enter the domainselection to determine a percentage coverage of data items 65 for theselected domain 305.

FIG. 36 is a diagram illustrating a user interface 660, according to anembodiment. The user interface 660 is shown to include a domain explorerpanel 662 that lists domains 305 and a preview panel 665. The domainexplorer panel 662 illustrates a selected domain 664, “Apparel andAccessories” and the preview panel 665 illustrates a request 667 todetermine percentage coverage for the “Apparel and Accessories”department domain 305.

Returning to FIG. 23, at operation 668, the domain coverage module 87determines the domains 305 that may be nested under the selected domain305. For example, the “Apparel and Accessories” department domain 128may include one or more aisle domains 130 that may respectively includeone or more product domains 132. At operation 670, the domain coveragemodule 87 utilizes the histogram information 99 to determine thepercentage coverage for the domain 305 selected and the domains 305nested under the selected domain 305. For example, the domain coveragemodule 87 may divide a quantity of data items (e.g., first quantity ofdata items) in the form of a data item counter 446 in the domaincoverage information 442 corresponding to the selected domain 306 by atotal quantity of data items in the form of the total data item counter443 in the domain coverage information 442 to determine the percentagecoverage for the selected domain 305. The same determination may also bemade for each of the nested domains 305.

At operation 672, the viewing manager 95 displays percentage coveragefor the identified domains. For example, the viewing manager 95 maygenerate interface elements representing the percentage coverage for thedomain 305 selected and the domains 305 nested under the selected domain305. In one embodiment, the viewing manager 95 may display interfaceelements as user interface elements on a user interface.

Returning to FIG. 36, the user interface 660 is shown to include adomain coverage preview panel 674. The domain coverage preview panel 674is shown to include domains 305 (callout 676) including the selecteddomain, “Apparel and Accessories”, and nested domains 305 under the“Apparel and Accessories” domain 305 including “Women's Shoes,” and“Shoes.” Each of the domains 305 are associated with a count of dataitems 678 and a percentage coverage 680. The count of data items 675 mayindicate a matching quantity of data items (e.g., category 324 in thedata item 65 that matched a category 324 in the condition clause 298 ofa domain rule 292). The percentage coverage may be the matching quantityof data items divided by the total quantity of data items 65 to whichthe domain rules 292 were applied.

FIG. 24 is a flowchart illustrating a method 700, according to anembodiment, to apply domain rules 292 to data items 65. The method 700commences at operation 702 with the classification service engine 48identifying the next domain dictionary 252 in the classificationinformation 49.

At operation 704, the classification service engine 48 reads the nextdata item 65 from the sample data item information 83. At operation 706,the classification service engine 48 reads the next domain rule 292 fromthe current domain dictionary 252. At operation 708, the classificationservice engine 48 applies the domain rule 292 to the data item 65.

At decision operation 710, the classification service engine 48determines if the condition clause 298 in the domain rule 292 evaluatesTRUE based on the contents of the data item 65. If the condition clause298 evaluates TRUE, then a branch is made to operation 712. Otherwise,processing continues at decision operation 714.

At operation 712, the classification service engine 48 increments theappropriate data item counter 446 in the domain coverage information442. For example, the classification service engine 48 increments thedata item counter 446 in the domain coverage information 442 thatcorresponds to the domain 305 in the predicate clause 300 of thematching domain rule 292.

At decision operation 714, the classification service engine 48determines if there are more domain rules 292 in the domain dictionary252. If there are more domain rules 292, then a branch is made tooperation 706. Otherwise, processing continues at decision operation716.

At decision operation 716, the classification service engine 48determines if there are more data items 65 in the sample data iteminformation 83. If there are more data items 65, then a branch is madeto operation 704. Otherwise, a branch is made to decision operation 718.

At decision operation 718, the classification service engine 48determines if there are more domain dictionaries 252 to process. Ifthere are more domain dictionaries 252 to process, then a branch is madeto operation 702. Otherwise, processing ends.

FIG. 25 is a flowchart illustrating a method 720, according to anembodiment, to determine nested domains. The method 720 commences atoperation 722 with the classification service engine 48 identifying thenext domain dictionary 252.

At decision operation 724, the classification service engine determinesif the current domain dictionary 252 includes domains 305 that may benested under the selected domain 305. For example, the selected domain305 may be a department domain 128 that may include one or more aisledomains 130 that respectively may include one or more product domains132. If the classification service engine 48 determines there are nesteddomains, then a branch is made to 726. Otherwise, a branch is made todecision operation 727.

At operation 726, the classification service engine 48 registers thenested domain(s). At decision operation 727, the classification serviceengine 48 determines if there are more domain dictionaries 252 toprocess. If there are more domain dictionaries 252 to process then abranch is made to operation 722. Otherwise processing ends.

FIG. 26 is a flow chart illustrating a method 728, according to anembodiment, to represent percentage coverage associated with an aspect.Illustrated on the left are operations performed at back end servers 103and illustrated on the right are operations performed on a clientmachine 23. The method 728, commences at operation 730, at the clientmachine 23, with a category manager requesting data items 65 for thepreview environment. For example, in one embodiment, a data itemprocessing module 81 may receive the request from the category manager.The request may identify a current sample 412, a seasonal sample 414, anhistorical sample 416 or some other type of sample as previouslydescribed. Next, the data item processing module 81 may communicate therequest to the back end servers 103.

At operation 732, at the back end servers 103, the data item retrievalmodule 85 receives the request for data items 65 and processes therequest. For example, at operation 734, the data item retrieval module85 may request and receive a current sample 412 of data items 65 (e.g.,live data items 65) from the data item information 67. In response toreceiving the current sample 412, the data item retrieval module 85 maystore the current sample 412 as sample data item information 83 that maybe utilized as sample data for the next publication of rules to thepreview environment. In another embodiment, the data item retrievalmodule 85 may utilize an existing seasonal sample 414 or historicalsample 416 that has been previously received from the data iteminformation 67. The seasonal sample 414 or historical sample 416 may beutilized as the data items 65 for the next publication of rules to thepreview environment, the seasonal sample 414 or historical samplepreviously requested and received from the data item information 67.

At operation 736, at the client machine 23, a category manager mayrequest publication of domain dictionaries 252 to the previewenvironment, the request being received and processed by the versionmanager 97. The version manager 97 may respond to the request byutilizing the domain versions 197 identified in the preview publishinformation 75 to identify the appropriate domain dictionaries 252 inthe production classification information 76 or the previewclassification information 78 to be used for publication.

At operation 738, on the back end servers 103, the processing module 46receives a complete set of domain dictionaries 252 in the form ofclassification information 49 and utilizes the publish modules 42 topublish the classification information 49 to the preview environment.For example, the classification service engine 48 may apply the domainrules 292 (operation 738) to the current sample 412 of the data items 65and the aspect rules 296 (operation 740) to the current sample 412 ofthe data items 65. Further, during publication, the classificationservice engine 48 may generate and store histogram information 99(operations 738, 740).

At operation 742, the classification service engine 48 communicates thehistogram information 99 to the client machine 23. For example, thehistogram information 99 may include aspect coverage information 444 anddomain coverage information 442.

At operation 744, at the client machine 23, the authoring modules 25receive and stores the histogram information 99.

At operation 746, the viewing manager 95 may receive a domain 305selection and at operation 748 the viewing manager 95 may receive anaspect coverage selection. The domain 305 selection and the aspectcoverage selection may be entered by a category manager to determinepercentage coverage for aspects in the selected domain 305.

FIG. 37 is a diagram illustrating a user interface 750, according to anembodiment, to display percentage of coverage for aspects. The userinterface 750 is shown to include a domain explorer panel 752 that listsmultiple domains 305 (e.g., “Apparel & Accessories”, “Women's Shoes”,etc.). The domain explorer 752 panel illustrates a selected domain 754(e.g., “Shoes”). The user interface 750 further shows a preview panel756 that includes an aspect coverage preview selection 758.

Returning to FIG. 26, at operation 756, the aspect coverage module 89determines percentage coverage for the aspects in the selected domain305.

At operation 758, the viewing manager 95 generates interface elements.For example, the viewing manager 95 may generate interface elementsrepresenting the percentage coverage for the aspects selected in thedomain selected. In one embodiment, the viewing manager 95 may displayinterface elements as user interface elements on a user interface.

Returning to the FIG. 37, the user interface 750 is shown to include anaspect coverage preview panel 768. The aspect coverage preview panel 768includes multiple aspects 306 (callout 769) (e.g., COLOR, BRAND, STYLE).Each aspect 306 may be associated with a value indicator 770, count 772and a percentage coverage 774. The value indicator 770 indicates thatall values 308 associated with the corresponding aspect 306 may beutilized to generate the count 772 and the percentage coverage 896. Forexample, the count 772 associated with the aspect 306 COLOR may beincremented based on an assignment to a data item 65 of an aspect-valuepair 304 that includes the aspect COLOR irrespective of the associatedcolor value 308 (e.g., red, blue, yellow). The count 772 refers to aquantity of data items 65 (e.g., matching quantity of data items) thatcaused a condition clause 298 of an aspect rule 296 to evaluate TRUE.The percentage coverage 774 may be generated by dividing the matchingquantity of data items 65 by the total quantity of data items 65 towhich the aspect rules were applied.

FIG. 27 is a flow chart illustrating a method 780, according to anembodiment to apply aspect rules 296 to data items 65. The method 780commences at operation 782 with the classification service engine 48identifying the next domain dictionary 252 in the classificationinformation 49.

At operation 784, the classification service engine 48 reads the nextdata item 65 from the sample data item information 83. At operation 785,the classification service engine 48 increments the total data itemcounter 443 (e.g., total quantity of data items) in the aspect coverageinformation 444. At operation 786, the classification service engine 48identifies the next aspect 306 in the domain dictionary 252. Atoperation 787, the classification service engine 48 advances to the nextvalue 308 associated with the current aspect 306. At operation 788, theclassification service engine 48 reads the next aspect rule 296associated with the current aspect 306 and the current value. Atdecision operation 790, the classification service engine 48 determinesif the current aspect rule 296 matches the data item 65 (e.g., thecondition clause 298 evaluates TRUE). If the current aspect rule 296matches the data item then a branch is made to operation 792. Otherwiseprocessing continues at decision operation 794.

At operation 792, the classification service engine 48 increments thedata item counter 446 based on the current domain 305, the currentaspect 306, and the current value 308. For example, if the predicateclause 300 of the current aspect rule 296 includes the aspect 306 COLORand the value 308 “blue” and the domain 305 is “shoes” then the dataitem counter 446 corresponding to the domain 305 “shoes”, the aspect“COLOR”, and the value “blue” is incremented in the aspect coverageinformation 444.

At decision operation 794, the classification service engine 48determines if there are more values 308 associated with the currentaspect 306. If there are more values 308, then a branch is made tooperation 787. Otherwise processing continues at decision operation 798.

At decision operation 798, the classification service engine 48determines if there are more aspects 306 associated with the currentdomain 305. If there are more aspects 306, then a branch is made tooperation 786. Otherwise processing continues at decision operation 800.

At decision operation 800, the classification service engine 48determines if there are more data items 65. If there are more data items65, then a branch is made to operation 784. Otherwise processingcontinues at decision operation 802.

At decision operation 802, the classification service engine 48determines if there are more domain dictionaries 252. If there are moredomain dictionaries 252, then a branch is made to operation 782.Otherwise processing ends.

FIG. 28 is a flow chart illustrating a method 808, according to anembodiment, to determine percentage coverage for aspects. The method 808commences at operation 810 with the aspect coverage module 89identifying one or more domains 305 based on the selected domain 305 andany domain(s) 305 nested under the selected domain 305. For example, aselected department domain 128 may further include aisle domains 130that may further include product domains 132. Each product domain 132may be associated with a domain dictionary 252.

At operation 811, the aspect coverage module 89 identifies the nextdomain 305 from the previously identified domains 305. At operation 814,the aspect coverage module 89 identifies the next aspect 306 in theidentified domain 305.

At operation 822, the aspect coverage module 89 determines a percentagecoverage for the current aspect 306 in the current domain 305. Forexample, the aspect coverage module 89 may identify a set of data itemcounters 446 in the aspect coverage information 444 that respectivelycorrespond to the values 308 associated with the current aspect 306 inthe current domain 305. Next, the aspect coverage module 89 adds the setof data item counters together to generate a quantity of data items 65(e.g., first quantity of data items) associated with the current aspect306. Next, the aspect coverage module 89 identifies a total quantity ofdata items in the form the total data item counter 443 in the aspectcoverage information 444. Next, the aspect coverage module 89 dividesthe quantity of data items by the total quantity of data items todetermine the percentage coverage for the aspect 306 in the currentdomain 305.

At decision operation 824, the aspect coverage module 89 determines ifthere are more aspects 306 associated with the current domain dictionary252. If there are more aspects 306, then a branch is made to operation814. Otherwise processing continues at decision operation 826.

At decision operation 826, the aspect coverage module 89 determines ifthere are more domains 305 from the identified domains 305 to process.If there are more domains 305, then a branch is made to operation 811.Otherwise processing ends.

FIG. 29 is a flow chart illustrating a method 850, according to anembodiment, to represent percentage coverage associated with anaspect-value pair. Illustrated on the left are operations performed atback end servers 103 and illustrated on the right are operationsperformed on a client machine 23. The method 850, commences at operation852, at the client machine 23, with a category manager requesting dataitems 65 for the preview environment. For example, in one embodiment, adata item processing module 81 may receive the request from the categorymanager. The request may identify a current sample 412, a seasonalsample 414, an historical sample 416 or some other type of sample aspreviously described. Next, the data item processing module 81 maycommunicate the request to the back end servers 103.

At operation 854, at the back end servers 103, the data item retrievalmodule 85 receives the request for data items 65 and processes therequest. For example, at operation 856, the data item retrieval module85 may request and receive a current sample 412 of data items 65 (e.g.,live data items 65) from the data item information 67. In response toreceiving the current sample 412, the data item retrieval module 85 maystore the current sample 412 of data items 65 as sample data iteminformation 83. The sample data item information 83 may be utilized assample data for the next publication of rules to the previewenvironment. In another embodiment, the data item retrieval module 85may utilize an existing seasonal sample 414 or historical sample 416 forthe next publication of rules to the preview environment, the seasonalsample 414 or historical sample previously requested and received fromthe data item information 67.

At operation 858, at the client machine 23, a category manager mayrequest publication of domain dictionaries 252 to the previewenvironment, the request being received and processed by the versionmanager 97. For example, the version manager 97 may respond to therequest by utilizing the domain versions 197 identified in the previewpublish information 75 to identify the appropriate domain dictionaries252 in the production classification information 76 or the previewclassification information 78 for publication.

At operation 860, on the back end servers 103, the processing module 46receives a complete set of domain dictionaries 252 in the form ofclassification information 49 and utilizes the publish modules 42 topublish the domain dictionaries 252 in the classification information 49to the preview environment. For example, the classification serviceengine 48 may apply the domain rules 292 (operation 860) to the currentsample 412 of the data items 65 and aspect rules 296 (operation 862) tothe current sample 412 of the data items 65. Further, duringpublication, the classification service engine 48 may generate and storehistogram information 99 (operations 860, 862).

At operation 864, the classification service engine 48 communicates thehistogram information 99 to the client machine 23. For example, thehistogram information 99 may include aspect coverage information 444 anddomain coverage information 442.

At operation 866, at the client machine 23, the authoring modules 25 mayreceive and store the histogram information 99.

At operation 868, the viewing manager 95 may receive a domain 305selection. Further, at operation 870, the viewing manager 95 may receivean aspect selection and, at operation 871, the viewing manager 95 mayreceive an aspect-value pair coverage selection.

FIG. 38 is a diagram illustrating a user interface 872, according to anembodiment, to display percentage of coverage for aspect-value pairs304. The user interface 872 is shown to include a domain explorer panel874, a domain window 876, and a preview panel 884. The domain explorerpanel 874 illustrates domains 305 (e.g., “Apparel & Accessories”,“Women's Shoes”, etc.) including a selected domain 305 (callout 880)(e.g., “shoes”). The domain window 876 illustrates domain information(e.g., “Catalogs”, “Categories”) and aspects 306 (callout 882) (e.g.,COLOR, BRAND, STYLE) associated with the domain 305 “shoes.” The domainwindow 876 further illustrates a selected aspect 306 (e.g., “COLOR”).The preview panel 878 illustrates an “aspect-value pair coverage”preview selection 884.

Returning to FIG. 29, at operation 888, the aspect coverage module 89determines percentage coverage for aspect-value pairs 304 associatedwith the selected aspect 306 within the selected domain 305. Forexample, the aspect coverage module 89 may determine percentage coveragefor the aspect-value pairs 304 “COLOR=red,” “COLOR=ruby,” “COLOR=green,”“COLOR=brown,” “COLOR=black,” in the selected domain 305 “shoes.”

At operation 890, the viewing manager 95 generates interface elements.For example, the viewing manager 95 may generate interface elementsrepresenting the percentage coverage for the aspect-value pairs based onthe aspect 306 selected and the domain 305 selected. In one embodiment,the viewing manager 95 may display interface elements as user interfaceelements on a user interface.

Returning to the FIG. 38, the user interface 872 is shown to include anaspect-value coverage preview panel 892. The aspect-value coveragepreview panel 892 includes multiple values 308 (callout 894) (e.g.,“red”, “ruby”, “green”, “brown”, “black”) associated with the aspect 306“COLOR.” Each value 308 is associated with a count 894 and percentagecoverage 896. The count 894 refers to a matching quantity of data items65 that caused a condition clause 298 of an aspect rule 296 to evaluateTRUE resulting in an assignment of a COLOR aspect-value pair 304 to thedata item 65 (e.g., “COLOR=red,” “COLOR=ruby”). The percentage coverage896 may be generated by dividing the matching quantity of data items 65by a total quantity of data items 65 to which the aspect rules wereapplied.

FIG. 30 is a flow chart illustrating a method 900, according to anembodiment, to determine aspect-value coverage. The method 900 commencesat operation 902 with the aspect-value coverage module 91 identifyingthe selected domain 305. At operation 904 the aspect-value coveragemodule 91 identifies the selected aspect 306. At operation 908, theaspect-value coverage module 91 identifies the next value 308 associatedwith the selected aspect 306.

At operation 910, the aspect-value coverage module 91 determines apercentage coverage for the aspect-value pair 304 in the selected domain305. For example, the aspect-value coverage module 91 identifies aquantity of data items (e.g., first quantity of data items) in the formof the data item counter 446 in the aspect coverage information 444, thedata item counter 446 corresponding to the selected domain 305, theselected aspect and the current value (e.g., aspect-value pair 304).Next, the aspect-value coverage module 91 identifies a total quantity ofdata items in the form the total data item counter 443 in the aspectcoverage information 444. Next, aspect-value coverage module 91 dividesthe quantity of data items by the total quantity of data items todetermine the percentage coverage for the aspect-value pair 304.

At decision operation 912, the aspect-value coverage module 91determines if there are more values 308 associated with the currentaspect 306. If there are more values 308, then a branch is made tooperation 908. Otherwise processing ends.

FIG. 39 is a block diagram illustrating multiple marketplaceapplications 44 that, in one example embodiment of a network-basedmarketplace, are provided as part of the information storage andretrieval platform 12. The information storage and retrieval platform 12may provide a number of listing and price-setting mechanisms whereby aseller may list goods or services for sale, a buyer can express interestin or indicate a desire to purchase such goods or services, and a pricecan be set for a transaction pertaining to the goods or services. Tothis end, the marketplace applications 44 re shown to include one ormore auction applications 920 which support auction-format listing andprice setting mechanisms (e.g., English, Dutch, Vickrey, Chinese,Double, Reverse auctions etc.). The various auction applications 920 mayalso provide a number of features in support of such auction-formatlistings, such as a reserve price feature whereby a seller may specify areserve price in connection with a listing and a proxy-bidding featurewhereby a bidder may invoke automated proxy bidding.

A number of fixed-price applications 922 support fixed-price listingformats (e.g., the traditional classified advertisement-type listing ora catalogue listing) and buyout-type listings. Specifically, buyout-typelistings (e.g., including the Buy-It-Now (BIN) technology developed byeBay Inc., of San Jose, Calif.) may be offered in conjunction with anauction-format listing, and allow a buyer to purchase goods or services,which are also being offered for sale via an auction, for a fixed-pricethat is typically higher than the starting price of the auction.

Store applications 924 allow sellers to group their listings within a“virtual” store, which may be branded and otherwise personalized by andfor the sellers. Such a virtual store may also offer promotions,incentives and features that are specific and personalized to a relevantseller.

Reputation applications 926 allow parties that transact utilizing theinformation storage and retrieval platform 12 to establish, build andmaintain reputations, which may be made available and published topotential trading partners. Consider that where, for example, theinformation storage and retrieval platform 12 supports person-to-persontrading, users may have no history or other reference informationwhereby the trustworthiness and credibility of potential tradingpartners may be assessed. The reputation applications 926 allow a user,for example through feedback provided by other transaction partners, toestablish a reputation within the information storage and retrievalplatform 12 over time. Other potential trading partners may thenreference such a reputation for the purposes of assessing credibilityand trustworthiness.

Personalization applications 928 allow users of the information storageand retrieval platform 12 to personalize various aspects of theirinteractions with the information storage and retrieval platform 12. Forexample a user may, utilizing an appropriate personalization application52, create a personalized reference page at which information regardingtransactions to which the user is (or has been) a party may be viewed.Further, a personalization application 928 may enable a user topersonalize listings and other aspects of their interactions with theinformation storage and retrieval platform 12 and other parties.

In one embodiment, the information storage and retrieval platform 12 mayincluded international applications 930 to support a number ofmarketplaces that are customized, for example, for specific geographicregions. A version of the information storage and retrieval platform 12may be customized for the United Kingdom, whereas another version of theinformation storage and retrieval platform 12 may be customized for theUnited States. Each of these versions may operate as an independentmarketplace, or may be customized (or internationalized) presentationsof a common underlying marketplace.

Navigation of the information storage and retrieval platform 12 may befacilitated by one or more navigation applications 932. For example, asearch application enables key word searches of listings published viathe information storage and retrieval platform 12. A browse applicationallows users to browse various category, catalogue, or inventory datastructures according to which listings may be classified within themarketplace 12. Various other navigation applications 932 may beprovided to supplement the search and browsing applications.

In order to make listings, available via the information storage andretrieval platform 12, as visually informing and attractive as possible,the marketplace applications 44 may include one or more imagingapplications 934 utilizing which users may upload images for inclusionwithin listings. An imaging application 934 also operates to incorporateimages within viewed listings. The imaging applications 934 may alsosupport one or more promotional features, such as image galleries thatare presented to potential buyers. For example, sellers may pay anadditional fee to have an image included within a gallery of images forpromoted items.

Listing creation applications 936 allow sellers conveniently to authorlistings pertaining to goods or services that they wish to transact viathe information storage and retrieval platform 12, and listingmanagement applications 938 allow sellers to manage such listings.Specifically, where a particular seller has authored and/or published alarge number of listings, the management of such listings may present achallenge. The listing management applications 938 provide a number offeatures (e.g., auto-relisting, inventory level monitors, etc.) toassist the seller in managing such listings. One or more post-listingmanagement applications 940 also assist sellers with a number ofactivities that typically occur post-listing. For example, uponcompletion of an auction facilitated by one or more auction applications920, a seller may wish to leave feedback regarding a particular buyer.To this end, a post-listing management application 940 may provide aninterface to one or more reputation applications 926, so as to allow theseller conveniently to provide feedback regarding multiple buyers to thereputation applications 926.

Dispute resolution applications 942 provide mechanisms whereby disputesarising between transacting parties may be resolved. For example, thedispute resolution applications 942 may provide guided procedureswhereby the parties are guided through a number of steps in an attemptto settle a dispute. In the event that the dispute cannot be settled viathe guided procedures, the dispute may be escalated to a third partymediator or arbitrator.

A number of fraud prevention applications 944 implement various frauddetection and prevention mechanisms to reduce the occurrence of fraudwithin the information storage and retrieval platform 12.

Messaging applications 946 are responsible for the generation anddelivery of messages to users of the information storage and retrievalplatform 12, such messages for example advising users regarding thestatus of listings at the information storage and retrieval platform 12(e.g., providing “outbid” notices to bidders during an auction processor to provide promotional and merchandising information to users).

Merchandising applications 948 support various merchandising functionsthat are made available to sellers to enable sellers to increase salesvia the information storage and retrieval platform 12. The merchandisingapplications 948 also operate the various merchandising features thatmay be invoked by sellers, and may monitor and track the success ofmerchandising strategies employed by sellers.

The information storage and retrieval platform 12 itself or a user ofthe information storage and retrieval platform 12 may operate loyaltyprograms that are supported by one or more loyalty/promotionsapplications 950.

Data Structures

FIG. 40 is a high-level entity-relationship diagram, illustratingvarious marketplace information 45 that may be maintained within thedatabases 36, and that are utilized by and support the marketplaceapplications 44. A user table 960 contains a record for each registereduser of the information storage and retrieval platform 12, and mayinclude identifier, address and financial instrument informationpertaining to each such registered user. A user may, it will beappreciated, operate as a seller, a buyer, or both, within theinformation storage and retrieval platform 12. In one exampleembodiment, a buyer may be a user that has accumulated value (e.g.,national currency or incentives including gift certificates, coupons,points, etc.) and is then able to exchange the accumulated value foritems that are offered for sale on the information storage and retrievalplatform 12. The user table 960 may further be used to maintain coupongeneration information, gift certificate generation information, andpoints generation information that may be used to maintain incentivecampaigns started by the user. Indeed the user, acting as a seller, mayissue and redeem incentives via the information storage and retrievalplatform 12.

The marketplace information 45 also includes data item searchinformation 962 in which are maintained data item structured information340, as previously described. In the present embodiment the data itemstructured information 340 may be for goods and services that areavailable to be, or have been, transacted via the information storageand retrieval platform 12. Each data item structured information 340within the data item search information 962 may furthermore be linked toone or more user records within the user table 960, so as to associate aseller and one or more actual or potential buyers with each item record.

A transaction table 964 contains a record for each transaction (e.g., apurchase transaction) pertaining to items for which records exist withinthe items table 962.

An order table 966 is populated with order records, each order recordbeing associated with an order. Each order, in turn, may be with respectto one or more transactions for which records exist within thetransactions table 964.

Bid records within a bids table 968 each relate to a bid received at theinformation storage and retrieval platform 12 in connection with anauction-format listing supported by an auction application 920. Afeedback table 970 is utilized by one or more reputation applications962, in one example embodiment, to construct and maintain reputationinformation concerning users. A history table 972 maintains a history oftransactions to which a user has been a party. Considering only a singleexample of such an attribute, the attributes tables 974 may indicate acurrency attribute associated with a particular item, the currencyattribute identifying the currency of a price for the relevant item asspecified in by a seller.

An incentives table 976 maintains system incentive information. Forexample, system incentive information may include incentive generationinformation (e.g., coupon generation information, gift certificategeneration information, and points generation information) that may beused to generate and maintain incentive campaigns whereby incentives areissued and redeemed by the information storage and retrieval platform12.

FIG. 40 shows a diagrammatic representation of machine in the exampleform of a computer system 1000 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a server computer,a client computer, a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The example computer system 1000 includes a processor 1002 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 1004 and a static memory 1006, which communicate with eachother via a bus 1008. The computer system 1000 may further include avideo display unit 1010 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). The computer system 1000 also includes analphanumeric input device 1012 (e.g., a keyboard), a cursor controldevice 1014 (e.g., a mouse), a disk drive unit 1016, a signal generationdevice 1018 (e.g., a speaker) and a network interface device 1020.

The disk drive unit 1016 includes a machine-readable medium 1022 onwhich is stored one or more sets of instructions (e.g., software 1024)embodying any one or more of the methodologies or functions describedherein. The software 1024 may also reside, completely or at leastpartially, within the main memory 1004 and/or within the processor 1002during execution thereof by the computer system 1000, the main memory1004 and the processor 1002 also constituting machine-readable media.

The software 1024 may further be transmitted or received over a network1026 via the network interface device 1020.

While the machine-readable medium 1022 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present disclosure. The term “machine-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, optical and magnetic media, and carrier wavesignals.

Thus, methods and systems to analyze rules based on aspect-valuecoverage are described. Although the present disclosure has beendescribed with reference to specific example embodiments, it will beevident that various modifications and changes may be made to theseembodiments without departing from the broader spirit and scope of thedisclosure. Accordingly, the specification and drawings are to beregarded in an illustrative rather than a restrictive sense.

1. A method of identifying an item listed on an information storage andretrieval platform as a candidate for an item sought, the methodcomprising: receiving information describing the item listed on theinformation storage and retrieval platform; inferring, using aprocessor, an aspect-value pair from the information, the aspect-valuepair being an aspect of the item listed on the information storage andretrieval platform and a value of the aspect of the item listed on theinformation storage and retrieval platform; receiving a search query;inferring an additional aspect-value pair from the search query, theadditional aspect-value pair being an aspect of the item sought and avalue of the aspect of the item sought; determining a correspondencebetween the aspect-value pair and the additional aspect value pair; andidentifying the item listed on the information storage and retrievalplatform as the candidate for the item sought based on the determiningof the correspondence between the aspect-value pair and the additionalaspect-value pair.
 2. The method of claim 1, wherein the determining ofthe correspondence between the aspect-value pair and the additionalaspect-value pair is based on a rule.
 3. The method of claim 1, whereinthe determining of the correspondence between the aspect-value pair andthe additional aspect-value pair is based on a rule.
 4. The method ofclaim 1, wherein the inferring of the aspect-value pair from theinformation is based on a rule.
 5. The method of claim 4, wherein acondition clause of the rule includes an abbreviation of a word and apredicate clause of the rule specifies the aspect-value pair based onthe abbreviation of the word.
 6. The method of claim 5, wherein theabbreviation of the word is an abbreviation of a color.
 7. The method ofclaim 4, further comprising: determining the aspect of the item listedon the information storage and retrieval platform; generating acandidate value corresponding to the value of the aspect of the itemlisted on the information storage and retrieval platform, the generatingbased on a search of a database; receiving an acceptance of thecandidate value; and generating the rule in response to the acceptanceof the candidate value, the rule including the aspect-value pair in apredicate clause.
 8. A system of identifying an item listed on aninformation storage and retrieval platform as a candidate for an itemsought, the system comprising: at least one processor; a listing moduleconfigured to receive information describing the item listed on theinformation storage and retrieval platform; a classification serviceengine implemented by the at least one processor and configured to inferan aspect-value pair, the aspect-value pair being an aspect of the itemlisted on the information storage and retrieval platform and a value ofthe aspect of the item listed on the information storage and retrievalplatform; a communication module configured to receive a search query;an aspect extractor module configured to infer an additionalaspect-value pair, the additional aspect-value pair being an aspect ofthe item sought and a value of the aspect of the item sought; and asearch index engine configured to: determine a correspondence betweenthe aspect-value pair and the additional aspect-value pair; and identifythe item listed on the information storage and retrieval platform as thecandidate of the item sought based on the correspondence between theaspect-value pair and the additional aspect-value pair.
 9. The system ofclaim 8, wherein the inferring of the aspect-value pair is based on arule.
 10. The system of claim 9, wherein a condition clause of the ruleincludes an abbreviation of a word and a predicate clause of the rulespecifies the aspect-value pair based on the abbreviation of the word.11. The system of claim 10, wherein the abbreviation of the word is anabbreviation of a color.
 12. The system of claim 9, further comprising:a scrubber module to determine the aspect of the item listed on theinformation storage and retrieval platform; a string analyzer module togenerate a candidate value corresponding to the value of the aspect ofthe item listed on the information storage and retrieval platform, thegenerating based on a search of a database; and an authoring module to:receive an acceptance of the candidate value; and generate the rule inresponse to the acceptance of the candidate value, the rule includingthe aspect-value pair in a predicate clause.
 13. A non-transitorymachine readable medium storing a set of instructions that, whenexecuted by a machine, cause the machine to perform a method ofidentifying an item listed on an information storage and retrievalplatform as a candidate for an item sought, the method, the methodcomprising: receiving information describing the item listed on theinformation storage and retrieval platform; inferring an aspect-valuepair from the information, the aspect-value pair being an aspect of theitem listed on the information storage and retrieval platform and avalue of the aspect of the item listed on the information storage andretrieval platform; receiving a search query; inferring an additionalaspect-value pair from the search query, the additional aspect-valuepair being an aspect of the item sought and a value of the aspect of theitem sought; and identifying the item listed on the information storageand retrieval platform as the candidate for the item sought based on adetermining of a correspondence between the aspect-value pair and theadditional aspect-value pair.
 14. The non-transitory machine readablemedium of claim 13, wherein the aspect-value pair is inferred from theinformation based on a rule.
 15. The non-transitory machine readablemedium of claim 14, wherein a condition clause of the rule includes anabbreviation of a word and a predicate clause of the rule specifies theaspect-value pair based on the abbreviation of the word.
 16. Thenon-transitory machine readable medium of claim 15, wherein theabbreviation of the word is an abbreviation of a color.
 17. Thenon-transitory machine readable medium of claim 14, further comprising:determining the aspect of the item listed on the information storage andretrieval platform; generating a candidate value corresponding to thevalue of the aspect of the item listed on the information storage andretrieval platform, the generating based on a search of a database;receiving an acceptance of the candidate value; and generating the rulein response to the acceptance of the candidate value, the rule includingthe aspect-value pair in a predicate clause.